我有一个中等规模的项目,并且我计划创建一个超级罐子。我使用Intellij对其进行了编译,并通过将“来自库的JAR文件”设置为“提取至目标JAR”构建了人工制品。
这是结果:
java -cp MyJar.jar com.package.MainClass
Error: Could not find or load main class com.package.MainClass
java -Xdiag -cp MyJar.jar com.package.MainClass
Error: Could not find or load main class com.package.MainClass
Caused by: java.lang.ClassNotFoundException: com.package.MainClass
java.lang.ClassNotFoundException: com.package.MainClass
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:583)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Class.java:415)
at java.base/sun.launcher.LauncherHelper.loadMainClass(LauncherHelper.java:770)
at java.base/sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:655)
如果我列出了jar的内容,则该类在那里。 如果我提取jar并从文件系统中运行该类,则它会起作用:
jar xf MyJar.jar
java com.package.MainClass <-- it works
如果在IntelliJ中,我将“来自库的JAR文件”设置为“通过清单复制输出并链接”,则jar确实起作用,但是我在目标目录中得到了一堆较小的jar文件。
有人知道什么地方可能出问题了,我应该如何调试呢?
答案 0 :(得分:0)
经过多次试验,似乎包含一些JAR会引起问题:电源模拟,目标对象和模拟。