我有一个独立的java项目。我已经进行了maven clean安装。我现在通过命令提示符进入target \ classes文件夹,并在classpath中设置所有必需的文件。现在我执行主类。结果显示出来。
现在我通过命令提示符移回目标文件夹并尝试执行jar文件(jar文件有一个清单文件,其中定义了主类)。
Java -cp %CLASSPATH% -jar Destination-01.19-SNAPSHOT.jar
现在我得到以下异常。我还从上面的语句中删除了classpath属性,但仍然得到了相同的异常。在classpath变量中设置了所需的类,这就是我能够在不使用-jar属性的情况下运行主类的原因。
线程“主线程”中的异常java.lang.NoClassDefFoundError:org / apache / co 蒙斯/记录/的LogFactory
答案 0 :(得分:4)
似乎-cp和-jar不兼容。您需要将类路径放在清单
中请参阅http://docs.oracle.com/javase/tutorial/deployment/jar/downman.html
如果您希望maven自动更新类路径,请参阅: -
http://maven.apache.org/shared/maven-archiver/examples/classpath.html
答案 1 :(得分:4)
使用-jar
时,这是设置程序类路径的唯一机制。
您必须在清单中的Class-Path行中列出您需要的所有jar(这意味着它们需要在本地文件系统中找到)或创建一个能够找到所需jar的自定义类加载器。