在做项目过程中,使用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 放到里面。目录结构如下所示:
这样就OK了。 也许你也会觉得这种方式不是很好,能不能在打包时,可以自动的将引用的jar包打进来了??,最终我们只需要一个jar文件,放到随意一个地方都是可以运行的, 是的,有这样的插件FatJar (The Fat Jar Eclipse Plug-In is a Deployment-Tool which deploys an Eclipse java-project into one executable jar.),参考下面的文章,完成操作
Eclipse打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 文件,如下所示:
在弹出的窗口中,选择 需要运行的类 Main-Class,如下所示:
点击,Next ,在下一步界面,选择要用到的第三方 jar 包,如下所示:
点击 Finish 按钮,完成操作,生成 jar 文件。