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.0
Class-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.jar
Main-Class: yanlei.base.tools.net.udp.example.ChatServer

--->

  

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

 

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


Eclipse 打可执行JAR包_第1张图片
 

   

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

Manifest-Version: 1.0
Class-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.jar
Main-Class: yanlei.base.tools.net.udp.example.ChatServer

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

 

 

你可能感兴趣的:(eclipse)