Почему моя банка работает на окнах, а не на 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, может быть одним из следующих:
- вы ошиблись с аргументом имени класса
- путь к классу приложения указан неверно
- неправильный каталог находится на пути к классам
- путь к подкаталогу не соответствует FQN
- зависимости отсутствуют в пути к классам
- класс был объявлен в неправильном пакете
Может быть и несоответствие версии
Введите следующее на своем терминале -
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