为了账号安全,请及时绑定邮箱和手机立即绑定

从命令行运行带有依赖项的 jar

从命令行运行带有依赖项的 jar

犯罪嫌疑人X 2021-12-10 16:40:58
Java 可以像这样从命令行运行 jar 文件:java -jar foobar.jar但是,如果foobar.jar取决于,则只要调用 中的baz.jar任何类,上述内容就会抛出异常baz.jar,因为 JVM 无法知道在哪里查找这些类。但是,手册页(Linux 上的 OpenJDK 8)指出:使用该-jar选项时,指定的 JAR 文件是所有用户类的来源,其他类路径设置将被忽略。如果重新打包不是一种选择,有没有办法从命令行运行具有依赖项的 jar 文件?
查看完整描述

2 回答

?
烙印99

TA贡献1829条经验 获得超13个赞

使用 时java -jar,不会在命令行上指定依赖项。您有两种方法可以将 jar 添加到类路径中:

  1. 调用java主类并foobar.jar在命令行上添加 jar 文件,包括您的.

    java -cp foobar.jar:baz.jar com.mycompany.MainClass
  2. foobar.jar的清单文件中包含依赖项(然后运行java -jar

    Class-Path: baz.jar


查看完整回答
反对 回复 2021-12-10
?
跃然一笑

TA贡献1826条经验 获得超6个赞

我相信你在 foobar.jar 中只有“一个”主类。如果它大于 1,那么您需要指定执行哪一个。
您可以在执行 jar 之前简单地设置类路径

export CLASSPATH=$CLASSPATH:/JAR_LOCATION/bar.jar


查看完整回答
反对 回复 2021-12-10
  • 2 回答
  • 0 关注
  • 156 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信