Добавьте jmods JavaFX в java --list-modules

Предисловие:

Мне нужно открыть файлы .jar, для которых требуются Java и JavaFX. Я установил обе Java (с веб-сайта Oracle) и JavaFX (SDK с веб-сайта openjfx). Я добавил переменные среды, обновив файл /etc/environment и добавив JAVAFX_HOME="path/to/JavaFX".

/etc/environment файл выглядит так:

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/lib/jvm/jdk-12.0.2/bin"
JAVA_HOME="/usr/lib/jvm/jdk-12.0.2"
JAVAFX_HOME="/home/joshi/Documents/javafx-sdk-12.0.2/lib"

На данный момент я могу запустить файл .jar, выполнив:

java --module-path $JAVAFX_HOME --add-modules ALL-MODULE-PATH -jar myfile.jar

Существует несколько файлов .jar, что делает выполнение вышеуказанной команды довольно проблематичным. Имя файлов .jar тоже довольно неброское и сложное.

Вопрос:

Я хочу знать, могу ли я постоянно добавлять jmods JavaFX в Java. Например, когда мы выполняем в терминале java --list-modules, он также должен включать в себя моды JavaFX.

Я пытался:

  1. Копирование jmod-файлов JavaFX в /usr/lib/jvm/jdk-12.0.2/jmods. Но даже после перезагрузки java --list-modules не включает моды JavaFX. я тоже побежал
    sudo update-alternatives --config java 
    sudo update-alternatives --config javac
  1. Я не думаю, что создание файлов сценариев .sh было бы хорошей идеей, поскольку файлов сценариев должно быть столько же, сколько файлов .jar.

Любая помощь высоко ценится. Я на Кубунту.


person Sanmay Joshi    schedule 12.08.2019    source источник
comment
Взгляните на этот openjfx.io/openjfx-docs/#modular (раздел: Custom образ JDK+JavaFX). Идея состоит в том, чтобы создать собственный JDK с включенным JavaFX.   -  person José Pereda    schedule 12.08.2019


Ответы (1)


Вы можете использовать переменную среды: _JAVA_OPTIONS. Все параметры, указанные в этой переменной, будут добавлены к параметрам запуска JVM.

export _JAVA_OPTIONS="--module-path=/path/to/JavaFX --add-modules=ALL-MODULE-PATH"

person northpl93    schedule 12.08.2019
comment
Настройка _JAVA_OPTIONS="--module-path /path/to/JavaFX --add-modules ALL-MODULE-PATH" вызвала следующую ошибку: Picked up _JAVA_OPTIONS: --module-path /home/sanmay/Documents/javafx-sdk-12.0.2/lib --add-modules ALL-MODULE-PATH Unrecognized option: --module-path Error: Could not create the Java Virtual Machine. Error: A fatal exception has occurred. Program will exit. - person Sanmay Joshi; 12.08.2019
comment
Это работает, когда вы используете = вместо пробелов? Например: --module-path=/path/to/JavaFX --add-modules=ALL-MODULE-PATH - person northpl93; 12.08.2019
comment
Я также получил ошибку: не удалось создать виртуальную машину Java, но затем я добавил кавычки вокруг пути java fx: --module-path=/path/to/JavaFX, и это сработало (Windows) - person Tomislav Brabec; 08.02.2021