Я пытаюсь скомпилировать и запустить программу/проект JavaFX, которую я нашел в Интернете, чтобы повозиться и открыть для себя JavaFX, поскольку он впервые использует его в моем случае из моего терминала. JavaFX не включен в последнюю версию JDK, поэтому я установил openjfx.
Тем не менее, я попытался скомпилировать программу с помощью этой строки:
javac -cp /usr/share/java/openjfx/jre/lib/ext/jfxrt.jar *java
Что сработало, все файлы .class генерируются, но затем я попытался запустить его, используя эту строку:
java -cp /usr/share/java/openjfx/jre/lib/ext/jfxrt.jar:. Game
Эта строка дала мне эту ошибку:
Error : Could not find or load main class Game
Caused by : java.lang.NoClassDefFoundError: tutorialfx/tutorial23/Game (wrong name: Game)
Я пробовал много мелочей до сих пор, ничего окончательного. Я начал думать, что смогу запустить любую программу JavaFX с последними версиями JDK, но это не так. И вот я здесь !
У меня есть последняя версия openjfx, и я, очевидно, пытаюсь запустить программу!
Спасибо
@Slaw Действительно, вы правы, я установил его, разархивировал и сделал следующее: openjfx.io/openjfx-docs/#install-javafx, я могу скомпилировать, но снова, когда я пытаюсь запустить его, у меня точно такая же ошибка, как и в исходном сообщении.
Я думаю, вы должны запустить его с некоторыми пакетами.
возможно javac --module-path %PATH_TO_FX% --add-modules=javafx.controls HelloFX.java
Если Game — неправильное имя, возможно, tutorialfx.tutorial23.Game — правильное имя.
@trashgod Я оставил строки пакета, хотя они мне не нужны. Это мешало мне запустить игру. Он работал без строк пакета в начале каждого файла. Спасибо всем за ответы.
@TierTwo: рад, что вы разобрались; если это не дубликат, пожалуйста, редактировать вашего вопроса, чтобы включить минимальный воспроизводимый пример, который показывает ваш пересмотренный подход.




Вы упомянули, что у вас последняя версия OpenJFX, но тот факт, что вы указываете на
jfxrt.jarв своем пути к классам, похоже, указывает на обратное. OpenJFX 11.0.2 (последний стабильный выпуск без раннего доступа) не имеет файлаjfxrt.jar; у него есть отдельные файлы JAR для каждого модуля (например,javafx-graphics.jar,javafx-controls.jarи т. д.).