我正在尝试使用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
答案 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”时,我从来没有遇到过问题。