Не могу выполнить мое.jar JavaFX-приложение
Я пытаюсь заставить приложение JavaFX, которое я сделал на Windows, работать на Ubuntu. Я сделал файл.jar, и он отлично работает в Windows 10, но не работает в Ubuntu. Независимо от того, дважды ли я щелкаю по нему с рабочего стола (с включением запуска в качестве исполняемого файла) или запускаю из терминала, я получаю некоторую форму ошибки, что он не может найти мой класс Main. Javac также не работает, получая там такую же ошибку. Это мой файл манифеста:
Manifest-Version: 1.0
Implementation-Title:
Implementation-Version:
Permissions: sandbox
JavaFX-Version: 8.0
Class-Path:
Created-By: JavaFX Packager
Implementation-Vendor:
Main-Class: Main
Я установил Java с помощью apt install default-jre
команда. Есть идеи?
Это ошибка, которую я получаю при запуске java -jar myApp.jar
:
Could not find or load main class Main
Caused by: java.lang.NoClassDefFoundError: javarx/application/Application
После установки javafx, которая необходима, как указывали некоторые люди, она все равно не работает. Запуск java
Команда дает то же самое (см. выше). Вот несколько примеров запуска javac
команда:
javac myApp.jar
или же javac myApp
error: Class names, 'myApp.jar', are only accepted if annotation processing is explicitly requested
javac -cp myApp.jar
или же javac -cp myApp
javac: no source files
1 ответ
Я предполагаю, что вы используете Ubuntu 18.04 или Ubuntu 18.10. У них есть Java 11 как default-jre. Java 11 не имеет Java FX. Вы должны установить отдельную среду исполнения Java FX в Ubuntu или упаковать все необходимые библиотеки (модули) Java FX в свое приложение с Maven или Gradle. Для упаковки вам нужно сделать сборку внутри Linux (Ubuntu), потому что тогда Maven/Gradle загрузит lib для Linux. Да, сборка для каждой ОС.
Дополнительная информация: https://stackoverflow.com/questions/52013505/how-do-i-use-javafx-11-in-eclipse/52015953
Дополнительная информация о Java FX 11: https://openjfx.io/openjfx-docs/
Если ваше приложение сделано на Java 8 (Java 1.8), содержащей Java FX, и вы не хотите переходить на Java 11, вам нужно установить Open Java 8 на Ubuntu + установить openjfx
Другим решением будет установка Oracle Java 8 для Ubuntu, которая будет содержать JavaFx.
Подробнее о том, как установить Java: https://www.digitalocean.com/community/tutorials/how-to-install-java-with-apt-on-ubuntu-18-04
Я надеюсь, что помогу.
Удачи всем!