eclipse打jar包 含有第三方引用jar做法

目的: 将工程中的代码和引用的第三方jar都打进去,并在linux中 通过 java -jar aaaaa.jar   方式能执行

方式1 使用eclipse export jar方式 同时使用 MANIFEST.MF方式

方式2 使用elipse插件fatjar打包,

上述两种方式参考链接如下,其中我用方式1打包后,在linux上无法执行 java -jar  aaaa.jar 总说引用的第三方包的类文件找不到,而使用fatjar打包后没有出现这种情况,

将两种打包方式解压后对比发现,fatjar的打包和eclipse的打包后的结果差别较大。

而且我下载fatjar插件放在eclipse后重启后 结果发现fat jar插件没有加载进来。

参考链接: http://www.cnblogs.com/lanxuezaipiao/p/3291641.html

或者采用如下方式,不过这种方式不好,如果你是给甲方提供服务,让第三方包放在甲方服务器的jre扩展文件夹下,估计甲方也不乐意,

参考链接 http://www.cnblogs.com/adolfmc/archive/2012/10/07/2713562.html

使用Extension Classloader来加载

 

你可以把需要加载的jar都扔到%JRE_HOME%/lib/ext下面,这个目录下的jar包会在Bootstrap Classloader工作完后由Extension Classloader来加载。非常方便,非常省心。:)

下面说下别的方式  通过eclipse打 Runnable JAR file的方式, 避免了下载fatjar插件,也不需要写 MANIFEST.MF 简单方便

1 如下是我工程截图,只有一个主类,HTest,内含有一个main函数,依赖包如截图所示:



 

2 先找出工程的入口类HTest,

选择工程hbaseTest, 右键run as/java applicatons  如下图:



 

3 打包,工程右键/export/runnable jar 如下图:



 

4 选择入口类和打包存放位置, 这里因为先执行了 步骤2因此在Lauch configuration能找到工程的执行函数,否则是找不到的。

 

 

5 打包后 比如打包名称为aaaa.jar,提交到linxu ,执行  java -jar aaaa.jar即可。

6 注意,linux的jdk要和eclipse工程使用的JDK 版本要一致,比如一个是1.6 一个是1.7 那么执行

java -jar aaaa.jar 时,会报版本 51.0的错,此时需要保持一致即可,需要注意,eclipse的工程buildpath 和java compile也需要一致如下图

     

猜你喜欢

转载自chengjianxiaoxue.iteye.com/blog/2237308