当前位置: 代码迷 >> Eclipse >> Eclipse 击可执行JAR包
  详细解决方案

Eclipse 击可执行JAR包

热度:43   发布时间:2016-04-23 00:53:11.0
Eclipse 打可执行JAR包

?

一. 不依赖第三方类库的可执行JAR

? Eclipse 工程上右键->export 打开窗口中,选择java/jar file ->next->

? ? 1.选择打到jar包里的文件和src下的哪些类

? ? 2.在JAR file:录入生所的jar包名。(默认路径是当前工作台目录,与可以选择指定的目录)

? ->next->next : Main class 框中选择主执行类->finish 就可以生成jar包的。

?

二 ? 依赖第三方类库的可执行JAR

? ? 如果代码的执行依赖第三方类库,就需要第三方类库的jar包在classpath中,如果通过java命令指定classpath,如: java -cp lib/* -jar test.jar (test.jar中的代码依赖lib目录下的jar包),执行时会报错:java.lang.NoClassDefFoundError,原因jar执行会忽略命令行参数cp,而是到jar包中的 META-INF/MANIFEST.MF文件中查找classpath定义。

? ?eclipse默认生成的MANIFEST.MF文件中不带有classpath项。

? ?需要自己写一个MANIFEST.MF,在手成JAR包时指定该文件 或者用winrar打开生成的jar包,修改META-INF/MANIFEST.MF。

?

? MANIFEST.MF 文件的简单格式:

? ? Manifest-Version:1.0 版本号

? ? Class-Path: jar包所在路径 (不能使用通配符)

? ? Main-Class: 主执行类全名

??

? ?MANIFEST.MF文件示例(带有尖括号那两行不算):?

? ?

<---Manifest-Version: 1.0Class-Path: lib/log4j-1.2.15.jar  lib/commons-beanutils-1.8.0.jar  lib/xml-apis.jar  lib/xml-resolver-1.2.jar  lib/xmlbeans-2.4.0.jar  lib/xmlbeans-qname.jarMain-Class: yanlei.base.tools.net.udp.example.ChatServer--->

??

注意:少了空格或换行以及Class-path与Main-Class位置的调换都可能引起出错。

?

在Eclipse中生成jar包时,指定MANIFEST.MF:



?

? ?

生成的jar里META-INFO/MANIFEST.MF文件:

Manifest-Version: 1.0Class-Path: lib/log4j-1.2.15.jar lib/commons-beanutils-1.8.0.jar lib/x ml-apis-1.0.b2.jar lib/xml-apis.jar lib/xml-resolver-1.2.jar lib/xmlb eans-2.4.0.jar lib/xmlbeans-qname.jarMain-Class: yanlei.base.tools.net.udp.example.ChatServer

?可以看出Class-path 中是以空格来做为分隔符的。

?

?

  相关解决方案