Ансамбль JavaFx на Raspberry Pi

Я пытаюсь запустить Esemble8.jar на моем новом RaspBerry pi. Я следовал этому руководству: http://www.oracle.com/webfolder/technetwork/tutorials/obe/java/RaspberryPiFX/raspberryfx.html

Мне удалось установить Java8, но когда я пытаюсь запустить Ensemble8.jar (или любое другое небольшое приложение JavaFx), у меня возникает эта ошибка:

Error: Could not find or load main class ensemble.EnsembleApp

Мой ПУТЬ правильный; у вас есть предложения по устранению проблемы?

Спасибо!


person drenda    schedule 02.02.2015    source источник
comment
Какую версию JDK8 вы используете?   -  person José Pereda    schedule 02.02.2015
comment
root@raspberrypi:~# java -version java version 1.8.0_33 Java(TM) SE Runtime Environment (сборка 1.8.0_33-b05) Java HotSpot(TM) Client VM (сборка 25.33-b05, смешанный режим)   -  person drenda    schedule 02.02.2015


Ответы (1)


Начиная с версии 8u33 для ARM, Oracle удалила JavaFX из дистрибутива ARM, как было объявлено здесь.

Вы можете прочитать некоторые заявления об этом на этих форумах:

  • Форум Raspberry Pi (сейчас он отключен)
  • Список рассылки OpenJFX

Таким образом, вы не сможете запустить какое-либо приложение JavaFX... если только вы не понизите свою версию до последней версии JDK8u6, поддерживающей JavaFX, или не предоставите действительный файл jfxrt.jar.

И вы можете сделать это, следуя этому руководству, кросс-сборка OpenJFX для ARM или просто использование какого-либо уже собранного дистрибутива, такого как этот один, размещенный на Проект JavaFXPorts.

После того, как вы загрузили armv6hf-sdk.zip, разархивируйте его, и вам нужно добавить этот параметр командной строки, чтобы присоединить этот внешний источник к пути к классам с механизмом расширения:

-Djava.ext.dirs=<path to armv6hf-sdk>/rt/lib/ext

Например, вам нужно это, чтобы запустить один из старых примеров JavaFX с его фактического пути:

sudo /opt/jdk1.8.0_33/bin/java -Djava.ext.dirs=<path to armv6hf-sdk>/rt/lib/ext -jar BrickBreaker.jar
person José Pereda    schedule 02.02.2015
comment
Вы можете рассмотреть возможность установки (копирования или символической ссылки) содержимого rt/lib/ext и rt/lib/ext непосредственно в вашу JVM, например: /opt/jdk1.8.0_33/jre/lib/ext и /opt/jdk1.8.0_33/jre/lib/arm соответственно. Это избавит от необходимости запускать приложения с директивой -Djava.ext.dirs=<path to armv6hf-sdk>/rt/lib/ext. - person Philip Couling; 20.02.2015
comment
Я попытался загрузить armv6hf-sdk.zip и добавил его в каталог моего проекта. Я добавил 'javafx-mx.jar, 'jfxrt.jar и jfxswt.jar в свои библиотеки проектов и в выходной каталог. Однако мой пи стиль говорит, что не может найти основной класс. - person Joël Abrahams; 01.04.2017
comment
@JoëlAbrahams Проверьте этот вопрос - person José Pereda; 01.04.2017
comment
Если кто-то попал сюда с такой же ошибкой с JavaFX 11/12 + OpenJdk 14, то должна помочь следующая команда: java --module-path D:\Software\Java\OpenJdk\Windows\11\JavaFX\javafx-sdk-11.0. 2\lib --add-modules javafx.controls,javafx.fxml,javafx.graphics -jar Ensemble8.jar - person Stack2Heap; 23.06.2020