仅限Mac:无法找到或加载主类

时间:2019-10-16 07:44:32

标签: java java-11

我有我的应用程序的jar文件。 当我使用java -cp "jarfile.jar" com.my.MainClass运行它时,它可以正常工作,但是如果我将其提供给其他开发人员,则很容易出现此错误:

Error: Could not find or load main class com.my.MainClass
Caused by: java.lang.ClassNotFoundException: com.my.MainClass

就这样,仅在Mac上不起作用。 (Windows很好)

Mac Java版本:

openjdk version “11.0.2” 2019-01-15
OpenJDK Runtime Environment 18.9 (build 11.0.2+9)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.2+9, mixed mode)

Windows Java版本:

openjdk version "11" 2018-09-25
OpenJDK Runtime Environment 18.9 (build 11+28)
OpenJDK 64-Bit Server VM 18.9 (build 11+28, mixed mode)

我没有任何sun。*依赖项。仅在java.util,java.net,java.io,java.nioorg.junit(捆绑在jar中)下找到依赖项。

愿意在必要时提供更多信息,只是不知道缺少什么。

1 个答案:

答案 0 :(得分:1)

您可以尝试一下并确保您必须位于com目录的父文件夹中吗 从您的问题MainClass在以下软件包层次结构com-> my-> MainClass.java中 并且您的类文件MainClass.class也将出现在相同的包层次结构中。

运行此MainClass时,您必须位于com文件夹的父目录中,并尝试使用以下命令进行编译或运行

在Windows中

: 进行编译(确保在com目录的父文件夹中执行此命令)

javac -cp“ jarfile.jar;”。 com \ my \ MainClass.java

java -cp“ jarfile.jar;”。 com.my.MainClass

对于Mac或Linux(确保您在com目录的父文件夹中执行此命令)

javac -cp“ jarfile.jar:”。 com / my / MainClass.java

java -cp“ jarfile.jar:”。 com.my.MainClass