Eclipse打JAR包引用的第三方JAR包找不到 – ☆★笨笨★☆的日志 – 网易博客

在做项目过程中,使用Eclipse打成JAR包,使用 Export–>Java–>JAR file ,我的jar包里面还引用了第三方的jar包:比如 log4j, 我也碰到了这样的问题:

 

http://zhidao.baidu.com/question/48376665.html

 

  “我的程序里引用了别的JAR包

在ECLIPSE里运行正常

我想把我的程序打个JAR包

打包的时候把引用的包也打进去了

可运行程序确总是找不到我引用的包”

 

百度知道上面的最佳回答是这样的:

 

在你的项目文件夹下建一个META-INF文件夹里面新建一个

MANIFEST.MF的文件内容大至如下

Manifest-Version: 1.0

Ant-Version: Apache Ant 1.6.2

Created-By: 1.5.0_06-57 (“Apple Computer, Inc.”)

Built-By: hani

Main-Class: com.opensymphony.workflow.designer.Launcher

Class-Path: looks.jar forms.jar syntax.jar jgraph.jar foxtrot.jar osworkflow-2.8.0.jar oscore-2.2.5.jar

 

Main-Class就是你要运行的类。

Class-path:就是你要引入的包

用eclipse导出jar文件里,选择

user existing manifest from workspace

manifest file:/你的项目名/src/META-INF/MANIFEST.MF

点击完成。这样应该就可以了

 

按照上面的说法,我在我的项目src文件夹下面新建了一个名为 META-INF 的文件夹,文件夹里面建立了一个名为 MANIFEST.MF 文件,文件内容如下:

 

Manifest-Version: 1.0

Main-Class: com.sgfs.udp.client.ClientMain

Class-Path: ./lib/log4j-1.2.15.jar

 

然后,在项目上右键 选择 Export–>Java–>Java file,导出jar包,然后需要做的是在导出的jar文件目录,比如我是放在 C:\SgfsUDPClient 目录下面,新建一个名为 lib 的文件夹,然后把 MANIFEST.MF 文件里面 Class-Path: 里面指定的log4j-1.2.15.jar 放到里面。目录结构如下所示:

  Eclipse打JAR包引用的第三方JAR包找不到 - ☆★笨笨★☆ - ☆★笨笨★☆

 

这样就OK了。 也许你也会觉得这种方式不是很好,能不能在打包时,可以自动的将引用的jar包打进来了??,最终我们只需要一个jar文件,放到随意一个地方都是可以运行的, 是的,有这样的插件FatJar (http://blog.csdn.net/jikeyzhang/archive/2009/10/27/4731968.aspx)

 

FatJar 项目地址:http://fjep.sourceforge.net/

 

上面文章中的总结如下:总结:一般把src打包export=>Jar File 即可。想把src附属的资源一起打包,必须使用FatJar => export..=>FatJar.

简要的操作使用说明如下:

在你的项目上右键,选择 Build Fat Jar 文件,如下所示:

 Eclipse打JAR包引用的第三方JAR包找不到 - ☆★笨笨★☆ - ☆★笨笨★☆

在弹出的窗口中,选择 需要运行的类 Main-Class,如下所示:

Eclipse打JAR包引用的第三方JAR包找不到 - ☆★笨笨★☆ - ☆★笨笨★☆

点击,Next ,在下一步界面,选择要用到的第三方 jar 包,如下所示:

 

  Eclipse打JAR包引用的第三方JAR包找不到 - ☆★笨笨★☆ - ☆★笨笨★☆

点击 Finish 按钮,完成操作,生成 jar 文件。

作者 龙飞