Почему моя банка работает на окнах, а не на Linux

Я работаю над приложением Javafx. Я создал банку с intellij и артефактом. Баночка очень хорошо работает на Windows. Однако, когда я запускаю его на Linux, он отображает это сообщение об ошибке:

Erreur : impossible to find or load the main class view.View
Caused by : java.lang.NoClassDefFoundError: javafx/application/Application

Возможно, это глупая ошибка, но я застрял на ней долгое время..... Я не нашел в интернете ничего, что могло бы мне помочь, поэтому, если у вас есть идея или полезная ссылка, я очень заинтересован

2 ответа

Решение

Как вы уже сказали, что Jar работает правильно в Windows, поэтому он упакован нормально.

Единственное, что может пойти не так в Linux, может быть одним из следующих:

  1. вы ошиблись с аргументом имени класса
  2. путь к классу приложения указан неверно
  3. неправильный каталог находится на пути к классам
  4. путь к подкаталогу не соответствует FQN
  5. зависимости отсутствуют в пути к классам
  6. класс был объявлен в неправильном пакете

Может быть и несоответствие версии

Введите следующее на своем терминале -

javac -version

Если в качестве выходных данных вы получите javac 1.6.0_10 или более поздней версии, вам придется выполнить следующие шаги. Если вы не получите вышеуказанный вывод, вам придется удалить и переустановить Java.

Шаги, если показанная версия 1.6.0_10 или более поздняя.

ln -s /usr/local/java /usr/local/jdk1.6.0_10

Как только это будет сделано, добавьте следующее в ваш файл.bashrc

экспорт JAVA_HOME=/usr/local/jdk1.6.0_10 экспорт PATH=$JAVA_HOME/bin:$PATH экспорт CLASSPATH=$CLASSPATH:$JAVA_HOME/lib

Для Ref:

Скорее всего, вам не хватает реализации JavaFX. В большинстве дистрибутивов Linux JavaFX представляет собой пакеты отдельно от JDK. Пакет скорее всего называется openjfx или что-то подобное.

Если вы используете Debian или дистрибутив на основе Debian, такой как Ubuntu, вы сможете установить openjfx, выполнив:

$ sudo apt-get установить openjfx

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