Как запустить программу JavaFX из терминала?

Я пытаюсь скомпилировать и запустить программу/проект 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, и я, очевидно, пытаюсь запустить программу!

Спасибо

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

Slaw 02.02.2019 23:37

@Slaw Действительно, вы правы, я установил его, разархивировал и сделал следующее: openjfx.io/openjfx-docs/#install-javafx, я могу скомпилировать, но снова, когда я пытаюсь запустить его, у меня точно такая же ошибка, как и в исходном сообщении.

TierTwo 02.02.2019 23:59

Я думаю, вы должны запустить его с некоторыми пакетами.

Sedrick 03.02.2019 04:39

возможно javac --module-path %PATH_TO_FX% --add-modules=javafx.controls HelloFX.java

Sedrick 03.02.2019 04:41

Если Game — неправильное имя, возможно, tutorialfx.tutorial23.Game — правильное имя.

trashgod 03.02.2019 13:48

@trashgod Я оставил строки пакета, хотя они мне не нужны. Это мешало мне запустить игру. Он работал без строк пакета в начале каждого файла. Спасибо всем за ответы.

TierTwo 03.02.2019 14:59

@TierTwo: рад, что вы разобрались; если это не дубликат, пожалуйста, редактировать вашего вопроса, чтобы включить минимальный воспроизводимый пример, который показывает ваш пересмотренный подход.

trashgod 03.02.2019 17:33
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
7
40
0

Другие вопросы по теме