Java无法在JAR中找到类

时间:2019-06-25 21:34:09

标签: java intellij-idea

我有一个中等规模的项目,并且我计划创建一个超级罐子。我使用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文件。

有人知道什么地方可能出问题了,我应该如何调试呢?

1 个答案:

答案 0 :(得分:0)

经过多次试验,似乎包含一些JAR会引起问题:电源模拟,目标对象和模拟。