我使用java -cp dependencyJarPath -jar MyJar.jar
启动我的应用程序。但是它在我的dependencyJar中找不到该类,并给了我java.lang.NoClassDefFoundError
。然后,我在代码中打印类路径,并发现dependencyJarPath不在我的类路径上。然后,在jar的MANIFEST.MF的Class-Path
标头中添加dependencyJarPath,并使用java -jar MyJar.jar
启动我的应用程序,
所以我的问题是,使用-cp
和-jar
时,-cp
会生效吗?如果没有生效,除了设置Class-Path
标头外,我如何在运行jar时设置类路径?
答案 0 :(得分:1)
据此: http://docs.oracle.com/javase/7/docs/technotes/tools/windows/java.html
“使用此选项时,JAR文件是所有用户类的源,而其他用户类路径设置将被忽略。”
如果您不介意在启动应用程序时指定启动类,则可以将jar添加到类路径并像这样启动它。
java -cp dependencyPath;MyJar.jar My.StartUpClass