java - 仅限 Mac : Could not find or load main class

标签 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 中)下查找依赖项。

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

最佳答案

您可以尝试一下并确保您必须位于 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

关于java - 仅限 Mac : Could not find or load main class,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58408231/

相关文章:

java - 即使在打包应用程序后如何修复 NumberFormat 格式

java - 未分类的 SQLException Jdbc 模板

java - 如何从 spring 上下文外部将 spring bean 注册到 spring 上下文中?

java - Kafka主题删除

windows - org.antlr.v4.runtime.misc.TestRig 挂起

java - 在注释处理器中获取没有任何注释的字段类型

java - 如何在事件驱动的 Java 中避免繁忙的 while 循环

Java 11 标准环境与 ApiProxy 不兼容?

java - Maven 组装插件 - 多版本 :true

java - 在 imageView 上的 editText 中输入图像 URL