我正在尝试使用Java从命令行(Windows)调用类(主方法)。该类导入其他类(其他jar)。我总是从我的主程序导入的类中获得“找不到类异常”。这是我尝试过的:添加一个CLASSPATH env。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中...拥有了这些,我也试图与指定清单文件中的类: Class-path referenced-jar.jar我也尝试过Class-path lib/referenced-jar.jar
3 回答

慕盖茨4494581
TA贡献1850条经验 获得超11个赞
-jar如果您碰巧知道要运行的主类的名称,则可以在不使用命令行参数的情况下运行它:
java -classpath .;myjar.jar;lib/referenced-class.jar my.package.MainClass
如果您使用的是Linux,则应使用“:”而不是“;”。在类路径中。

MMMHUHU
TA贡献1834条经验 获得超8个赞
如果您使用运行jar文件java -jar,则忽略该-classpath参数。您需要在jar的清单文件中设置类路径,如下所示:
Class-Path: jar1-name jar2-name directory-name/jar3-name
请参阅Java教程:将类添加到JAR文件的Classpath中。
编辑:我看到您已经尝试在清单中设置类路径,但是确定使用正确的语法吗?如果您像显示的那样:在“ Class-Path” 之后跳过“ ”,则将不起作用。

富国沪深
TA贡献1790条经验 获得超9个赞
尝试
java -cp "your_jar.jar:lib/referenced_jar.jar" com.your.main.Main
如果您使用的是Windows,则应使用;而不是:
添加回答
举报
0/150
提交
取消