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中运行代码时,它是成功的。
答案 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服务,但我没有这个项目的经验。