Только Mac: не удалось найти или загрузить основной класс - PullRequest
1 голос
/ 16 октября 2019

У меня есть файл 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

Это как таковое, только не работает наМак. (Windows в порядке)

Java-версия Mac:

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)

Java-версия Windows:

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 Ответ

1 голос
/ 16 октября 2019

Вы можете попробовать это и убедиться, что вы находитесь в родительской папке каталога 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

...