创建一个可运行的jar引用已经安装的第三方jar

时间:2016-08-04 13:28:57

标签: java eclipse jar

我有一个使用多个第三方库的java应用程序。到目前为止,我一直在将java应用程序(使用Eclipse)导出到一个可运行的jar中,并将这些库打包到jar中。一切都很顺利,但它开始让我觉得罐子有多大。考虑到这个罐子将定期通过WAN部署到数千个工作站,最好使封装尽可能小。我现在在哪里,是否有Eclipse导出runnable jar并将外部jar库放在jar旁边的子文件夹中。这大大减少了我的应用程序的占用空间....但我已经意识到子文件夹中的所有这些jar已经存在于系统上,所以它似乎是浪费磁盘空间来拥有它们的副本在我的申请旁边。

我认为有一种方法可以创建一个可运行的jar,它利用CLASSPATH变量来利用现有的库,而不必在附近拥有它们的副本。有没有......或者更好的是,是否有更好的方法。

谢谢。

1 个答案:

答案 0 :(得分:0)

一种方法可能是在runnable jar的清单中手动指定Class-Path。 Class-Path条目被指定为相对于可运行jar位置的URL而不是绝对值。

https://docs.oracle.com/javase/8/docs/technotes/guides/jar/jar.html#classpath

此外,在运行可执行jar时," -cp"参数和CLASSPATH环境变量将被忽略。类路径是从清单中的Class-Path行设置的。

http://docs.oracle.com/javase/8/docs/technotes/tools/windows/java.html