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

时间:2009-06-03 17:16:01

标签: java command-line jar classpath

我正在尝试使用Java从命令行(Windows)调用类(main方法) 该类导入其他类(其他jar)。

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

这是我试过的:

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

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

  • 我尝试将所有引用的jar包装在我的主类所在的jar中...

  • 尽管如此,我还尝试使用以下方法指定Manifest文件中的类: Class-path referenced-jar.jar我还尝试了Class-path lib/referenced-jar.jar

4 个答案:

答案 0 :(得分:116)

如果您碰巧知道要运行的主类的名称,则可以在没有-jar命令行参数的情况下运行它:

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

如果您使用的是Linux,则应使用“:”而不是“;”在类路径中。

答案 1 :(得分:59)

如果您正在运行包含java -jar的jar文件,则-classpath参数is ignored。您需要在jar的清单文件中设置类路径,如下所示:

  

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

请参阅Java教程:Adding Classes to the JAR File's Classpath

编辑:我看到您已尝试在清单中设置类路径,但是您确定使用了正确的语法吗?如果您在显示的“:”之后跳过“Class-Path”,则无效。

答案 2 :(得分:13)

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

如果您使用的是Windows,则应使用;代替:

答案 3 :(得分:3)

你可以尝试在eclipse中导出为“Runnable jar”。我也有问题,当我导出为“jar”时,但当我导出为“Runnable jar”时,我从来没有遇到过问题。