Java и переносимость: фальсифицируйте наличие JavaFX - PullRequest
0 голосов
/ 17 мая 2018

Разрабатываю программное обеспечение Java, которое должно использоваться на Raspberry Pi. Теперь, к сожалению, Raspi официально не поддерживает JavaFx, даже если его можно добавить вручную.

Мое программное обеспечение в основном можно использовать и без JFX, и оно предназначено для запрета использования определенных функций, когда JFX недоступен.

Проблема, однако, в том, что я получаю исключения NoClassDefFoundError относительно JFX, хотя ни одна функция не предназначена для выполнения.

Мне не удалось точно определить, какая строка вызывает исключение, потому что она не воспроизводима на ПК (только на малине), а данная строка и класс очень запутаны. Строка определенно не вызывает ничего, связанного с JFX, но использует статический вызов класса, который требует JFX для других функций (не вызываемой).

Я предполагаю, что причиной является уже вызов import или тот факт, что возвращаемый тип некоторых функций (которые не вызываются!) Имеют типы данных JFX.

У кого-нибудь есть идеи, как обойти эту довольно большую проблему? Огромное спасибо заранее!

1 Ответ

0 голосов
/ 17 мая 2018
  1. Почему бы вам просто не установить недостающие части JavaFX с веб-сайта Gluon?Вот учебник, который объясняет процесс: https://wimdeblauwe.wordpress.com/2017/08/26/using-javafx-on-raspberry-pi-3-with-gluon/

Возможно, вам также потребуется установить отсутствующий dirmngr

sudo apt-get install dirmngr --install-recommends
Альтернативой может быть установка OpenJDK на вашем ПК, который также не содержит JavaFX, и использование этого для сужения ваших проблем с запуском вашего приложения в среде не-fx.
...