当前位置: 首页 > 面试题库 >

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

傅经业
2023-03-14
问题内容

我已经编译了一个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文件并指定要使用的类路径?


问题答案:

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

从文档中:

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

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

你有两种选择:

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



 类似资料:
  • 我已经编译了一个JAR文件,并在清单中指定了Main-Class(我使用了Eclipse导出函数)。我的依赖项都在一个标记为的目录中。在指定JAR文件应该使用作为类路径的同时,我似乎无法得到如何执行JAR文件的直接答案。 我试过: 等等。 每一个都给出一个错误: 或者给出指示未找到库。 我甚至尝试重做JAR文件并包含目录和内容,但仍然没有任何结果。 我如何从命令行执行一个JAR文件并指定要使用的类

  • 问题内容: 好的,我知道这个问题以前已经被问过很多次了,但是我已经搜索了一下,查看了示例,并查看了过去一个月中关于SO的问题,我真的无法解决这个问题。我认为问题是我希望能够从Eclipse和命令行运行该程序。我也在使用OSX,我认为我正在阅读的许多示例都是针对Windows / Linux的。 如果我有一个要在命令行中运行的,在Eclipse中编译的简单程序,请执行以下操作: 我有另一个程序在Ec

  • 如何从java文件运行hadoop命令下面: hadoop jar'/home/ashish/desktop/hadoop_basics/wordcount_program/WordCount.jar'WordCount/wordcounttutorial/input/wordcounttutorial/output 提前谢了。

  • 问题内容: 我正在尝试从JAR运行课程。此类不是此jar中唯一的主类。另外,它还需要其他数量的jar文件,这些文件与该Jar保存在同一目录中。我尝试过的命令如下: (使用Windows平台,mydir是我所有jar所在的目录) 是运行所需的,是我要运行的课程。 并且是由类所需的命令行参数 下面是我曾尝试: 这是错误: 有人可以告诉我我应该运行什么命令吗? 问题答案: 尝试: ” 提供您从与myPr

  • 问题内容: 我已经在.jar文件清单中指定了Java程序的主类和类路径,但有时我想运行与该属性指定的类不同的类。我可以在仍然从清单中拉出类路径的同时让Java启动此类,这样我就不必在命令行上用来指定整个东西了吗? 问题答案: 只需使用-cp将jar文件放在命令行中即可;然后,即使您未使用-jar,Java也会观察清单中的classpath属性:

  • 问题内容: 我有以下目录层次结构: 在这里,SigarTest是程序包名称。根文件夹位于jdk的bin文件夹中。从那里,我运行以下命令来创建我的项目的jar文件- 其中tools.jar,mongo-2.7.3.jar和sigar.jar是必需的,并且与根目录(jdk的bin文件夹)位于同一文件夹中。但是,运行它,我得到 我究竟做错了什么 ? 问题答案: 使用 目录 选项 哪些 临时改变目录( D