【问题标题】:why -cp has no effect when used with -jar option? [duplicate]为什么 -cp 与 -jar 选项一起使用时没有效果? [复制]
【发布时间】:2021-01-30 00:00:00
【问题描述】:

我使用java -cp dependencyJarPath -jar MyJar.jar 启动我的应用程序。但它在我的dependencyJar 中找不到该类并给了我java.lang.NoClassDefFoundError。然后我在我的代码中打印类路径,发现dependencyJarPath 不在我的类路径中。然后我在 jar 的 MANIFEST.MF 中的 Class-Path 标头中添加dependencyJarPath,并使用java -jar MyJar.jar 启动我的应用程序,它起作用了。

所以我的问题是当-cp-jar一起使用时,-cp会生效吗?如果没有生效,除了设置Class-Path header,我在运行jar时如何设置classpath?

【问题讨论】:

标签: java jar classpath


【解决方案1】:

据此: http://docs.oracle.com/javase/7/docs/technotes/tools/windows/java.html

“使用此选项时,JAR 文件是所有用户类的来源,其他用户类路径设置将被忽略。”

如果您不介意在启动应用程序时指定启动类,您可以将您的 jar 添加到类路径并像这样启动它。

java -cp dependencyPath;MyJar.jar My.StartUpClass

【讨论】:

    猜你喜欢
    • 2021-08-02
    • 2021-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-12
    • 2019-09-20
    • 2019-03-16
    相关资源
    最近更新 更多