Java 运行 来自命令行的 jar:错误无法找到或加载 main class com.test.Main
Java run jar from command line: Error could not find or load main class com.test.Main
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 中 运行 编码时,它是成功的。
恐怕你不能,因为默认类加载器无法从罐中罐加载。我想 IntelliJ 会扩展这些罐子并因此工作。
看这里:Reference jars inside a jar
但是有一个解决办法。我使用 maven-assembly-plugin
创建具有依赖项的自动运行罐。如果我展开这个 jar,我发现所有 jar 依赖项都在 jar 内展开。这样Classloader就可以加载所有的类.
如果您不使用 maven,IntelliJ 必须有一个选项可以将项目导出为 autorun-jar 或类似的东西。
编辑
如果 maven 或将您的项目导出为 autorun-jar 对您来说不合适,也许 One-JAR 可以为您服务,但我没有这个项目的经验。
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 中 运行 编码时,它是成功的。
恐怕你不能,因为默认类加载器无法从罐中罐加载。我想 IntelliJ 会扩展这些罐子并因此工作。
看这里:Reference jars inside a jar
但是有一个解决办法。我使用 maven-assembly-plugin
创建具有依赖项的自动运行罐。如果我展开这个 jar,我发现所有 jar 依赖项都在 jar 内展开。这样Classloader就可以加载所有的类.
如果您不使用 maven,IntelliJ 必须有一个选项可以将项目导出为 autorun-jar 或类似的东西。
编辑
如果 maven 或将您的项目导出为 autorun-jar 对您来说不合适,也许 One-JAR 可以为您服务,但我没有这个项目的经验。