Java从命令行运行JAR文件并指定类路径

发布于 2021-02-02 22:56:17

我已经编译了一个JAR文件,并在清单中指定了Main-Class(我使用了Eclipse Export函数)。我的依赖项都在标有的目录中lib。在指定应将JAR文件lib/*用作类路径的同时,我似乎无法获得关于如何执行我的JAR文件的直接答案。

我试过了:

]$ java -jar -cp .:lib/* MyJar.jar
]$ java -cp .:lib/* -jar MyJar.jar
]$ java -cp .:lib/* com.somepackage.subpackage.Main

等等…

每个都给出一个错误说:

Error: Could not find or load main class ....

或NoClassDefFoundError指示未找到库。

我什至尝试重新制作JAR文件,并包括lib目录和内容,但仍然没有问题。

如何从命令行执行JAR文件并指定要使用的类路径?

关注者
0
被浏览
95
1 个回答
  • 面试哥
    面试哥 2021-02-02
    为面试而生,有面试问题,就找面试哥。

    指定-jar后,该-cp参数将被忽略。

    从文档中:

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

    你也不能将所需的jar文件“包含”到另一个jar文件中(你需要提取它们的内容并将.class文件放入你的jar文件中)

    你有两种选择:

    lib目录中的所有jar文件都包含到清单中(你可以在其中使用相对路径)
    使用以下命令在命令行中指定所有内容(包括 jar)-cp: java -cp MyJar.jar:lib/* com.somepackage.subpackage.Main



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看