Java:如何从命令行导入jar文件

我试图从命令行(Windows)与Java调用类(主要方法)。
该类导入其他类(其他的jar子)。

我总是从我的主程序导入的类中得到“class not found exception”。

这是我的尝试:

  • 添加一个CLASSPATH环境。 var与引用的lib所在的path(不工作)

  • java -jar myjar.jar调用“ java -jar myjar.jar ”时,我尝试了所有这些不同的参数:“- -classpath lib/ ”,“- -classpath ./lib/ -classpath lib ”,“- -cp lib/* ” ,“ -classpath lib/referenced-class.jar -cp lib/\* ”,“- -classpath lib/referenced-class.jar ”,“ -classpath lib/referenced-class.jar -classpath ./lib/referenced-class.jar是引用的jar所在的位置)

  • 我试着在我的主类所在的jar包里包装所有引用的jar …

  • 所有这一切,我也试图指定在Manifest文件中的类: Class-path referenced-jar.jar ,我也试过Class-path lib/referenced-jar.jar

如果您碰巧知道您希望运行的主类的名称,则可以在不使用-jar命令行参数的情况下运行它:

 java -classpath .;myjar.jar;lib/referenced-class.jar my.package.MainClass 

如果你正在使用linux,你应该使用“:”而不是“;” 在类path中。

如果使用java -jar运行jar文件, 则会忽略 -classpath参数。 您需要在jar的清单文件中设置类path,如下所示:

Class-Path: jar1-name jar2-name directory-name/jar3-name

请参阅Java教程: 将类添加到JAR文件的类path 。

编辑:我看到你已经尝试设置清单中的类path,但你确定你使用正确的语法? 如果你像显示的那样在“ Class-Path ”之后跳过了“ : ”,那么这将不起作用。

尝试

 java -cp "your_jar.jar:lib/referenced_jar.jar" com.your.main.Main 

如果你在窗户上,你应该使用; 而不是:

你可以尝试在eclipse中导出为“Runnable jar”。 我也有问题,当我出口作为“jar子”,但我从来没有问题,当我作为“运行jar”导出。