目的: 将工程中的代码和引用的第三方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插件没有加载进来。
或者采用如下方式,不过这种方式不好,如果你是给甲方提供服务,让第三方包放在甲方服务器的jre扩展文件夹下,估计甲方也不乐意,
使用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 那么执行