#javafx #javafx-11
#javafx #javafx-11
Вопрос:
Я просто на:
пытаюсь создать jar, который я могу запускать на других системах (в которых нет библиотек javafx, как это произошло бы с пользователем-непрофессионалом, не являющимся разработчиком), и они сказали мне использовать это:
dir /s /b src*.java > sources.txt amp; javac --module-path %PATH_TO_FX% -d mods/hellofx @sources.txt amp; del sources.txt
Что такое mods/
Где это должно быть? Они говорят о out / ?
Ответ №1:
Документ, на который вы ссылаетесь, относится к этому образцу.
Если вы клонируете образец и следуете инструкциям о том, как скомпилировать и запустить проект, первую команду можно разделить на три части:
dir /s /b src*.java > sources.txt amp;
javac --module-path %PATH_TO_FX% -d mods/hellofx @sources.txt amp;
del sources.txt
Первая часть просто получает все Java-файлы по пути src и добавляет их в sources.txt
файл:
C:pathtohellofxsrcmodule-info.java
C:pathtohellofxsrchellofxHelloFX.java
Вторая часть вызывает javac
команду (см. ссылку) для компиляции содержимого sources.txt
, добавляя необходимую --module-path
опцию для включения модулей JavaFX, а также добавляя опцию вывода или назначения -d
:
-общий каталог
Задает каталог назначения для файлов класса. Если класс является частью пакета, то javac помещает файл класса в подкаталог, который отражает имя пакета, и создает каталоги по мере необходимости.
Это означает, что мы собираемся скомпилировать hellofx.HelloFX.java
в каталог mods/hellofx
, в результате чего:
C:pathtohellofxmodshellofxmodule-info.class
C:pathtohellofxmodshellofxhellofxHelloFX.class
На третьем шаге просто удалится sources.txt
файл.
И теперь вы можете запустить свой модуль:
java --module-path "%PATH_TO_FX%;mods" -m hellofx/hellofx.HelloFX
Вы, конечно, можете указать любой каталог для вывода, чтобы, например, изменить его на out
или build
, но затем убедитесь, что вы соответствующим образом изменили его в остальных инструкциях.