在Java类路径内的目录中包含所有jar| Java Debug 笔记

223 阅读1分钟

本文正在参加「Java主题月 - Java Debug笔记活动」,详情查看活动链接

在Java类路径内的目录中包含所有jar

有没有办法将所有jar文件包含在类路径的目录中?

我正在尝试java -classpath lib/*.jar:. my.package.Program,但找不到这些jar中肯定存在的类文件。我是否需要将每个jar文件分别添加到类路径中?

高分回答:

很多的知识点,真的需要写出来才会掌握!!! \color{purple}很多的知识点,真的需要写出来才会掌握!!!{~}

在Windows下,该方法有效:

java -cp "Test.jar;lib/*" my.package.MainClass

这不起作用:

java -cp "Test.jar;lib/*.jar" my.package.MainClass

请注意*.jar,因此*通配符应单独使用。

在Linux上,以下工作:

java -cp "Test.jar:lib/*" my.package.MainClass

分隔符是冒号而不是分号。

高分回答:

通过部署一个主jar文件myapp.jar来解决此问题,该文件包含一个manifest(Manifest.mf)文件,该文件指定了带有其他必需jar的类路径,然后将其与该jar一起部署。在这种情况下,只需要java -jar myapp.jar在运行代码时声明即可。

因此,如果将main部署jar到某个目录中,然后将相关的jar放入该lib目录下的文件夹中,则清单如下所示:

Manifest-Version: 1.0
Implementation-Title: myapp
Implementation-Version: 1.0.1
Class-Path: lib/dep1.jar lib/dep2.jar

注意:这与平台无关-我们可以使用相同的jar在UNIX服务器或Windows PC上启动。

文章翻译自 yl2gl72eozkinivz3vc6swkesy-ac4c6men2g7xr2a-translate.translate.goog/questions/2…

作者建议:建议使用maven来管理依赖jar

欢迎关注我的专栏StackOverFlow,我会筛选优质的问答,面试常考!!! \color{red}欢迎关注我的专栏StackOverFlow,我会筛选优质的问答,面试常考!!!{~}

有最新、优雅的实现方式,我也会在文末写出我对本问答的见解 \color{red}有最新、优雅的实现方式,我也会在文末写出我对本问答的见解{~}

真心感谢帅逼靓女们能看到这里,如果这个文章写得还不错,觉得有点东西的话

求点赞👍 求关注❤️ 求分享👥 对8块腹肌的我来说真的 非常有用!!!

如果本篇博客有任何错误,请批评指教,不胜感激 !❤️❤️❤️❤️