仅 Mac:无法找到或加载主 class

Mac only: Could not find or load main class

我有我的应用程序的 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 中)。

如有必要,很乐意提供更多信息,只是不知道缺少什么。

你能试试这个并确保你必须在 com 目录的父文件夹中吗 根据您的问题,MainClass 位于以下包层次结构中 com->my->MainClass.java 并且您的 class 文件 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