Java从命令行运行jar:错误无法找到或加载主类com.test.Main

时间:2015-10-08 12:38:31

标签: java intellij-idea command-line jogl

Windows控制台命令:

c:\..path..>java -jar TestApp.jar

结果为:Error could not find or load main class com.test.Main

我正在使用IntelliJ 14,我的工件布局如下所示:

TestApp.jar/
--client.jar <----- com.test.Main is located here

--jogl/
----gluegen.jar
----jogl-all.jar

--META-INF/
----manifest.mf

清单文件信息:

Main-Class: com.test.Main
Class-Path: client.jar;jogl/gluegen-rt.jar;jogl/jogl-all.jar;

但是当我在IntelliJ中运行代码时,它是成功的。

1 个答案:

答案 0 :(得分:3)

恐怕你不能,因为默认的Classloader无法从一个罐子里面加载。我想IntelliJ会扩展这些罐子,从而起作用。

见这里:Reference jars inside a jar

但是有一个解决方案。我用maven-assembly-plugin创建带依赖关系的autorun-jar。如果我展开这个jar,我发现所有jar依赖都在jar中扩展。这样,Classloader可以加载所有类。

如果您不使用maven,IntelliJ必须有一个选项可以将项目导出为autorun-jar或类似的东西。

修改

如果maven或将你的项目导出为autorun-jar不适合你,那么One-JAR可能会为你的porpouse服务,但我没有这个项目的经验。