«Фактический» ответ
Некоторые из указанных вами ошибок указывают на проблему с пробелами в ваших аргументах (например, C:/Program Files/...
).Объемный %PATH_TO_FX%
с кавычками: "%PATH_TO_FX%"
.Тогда, как вы сказали в комментарии , правильная командная строка для вас:
java -p "%PATH_TO_FX%" --add-modules javafx.controls -jar <path-to-jar-file>
Остаток ответа
Из информации, которую выпри условии, что трудно (по крайней мере для меня) сказать, в чем именно проблема.Вместо этого я приведу несколько примеров запуска приложения JavaFX из командной строки, как модульного, так и немодульного.
Допустим, у вас есть проект с одним классом - основным классом - с именем com.example.Main
.Этот класс расширяет Application
и отображает простое окно.Скажем также, что когда код является модульным, модуль выглядит следующим образом:
module app {
requires javafx.controls;
exports com.example to javafx.graphics;
}
И структура вашего проекта выглядит следующим образом:
\---<project-directory>
+---out
| +---artifacts
| | app-1.0.jar (modular or non-modular)
| |
| \---classes
| | module-info.class (when modular)
| |
| \---com
| \---example
| Main.class
|
\---src
| module-info.java (when modular)
|
\---com
\---example
Main.java
Тогда ваша командная строка будет выглядеть так:из следующих (ориентированных на Windows):
Немодульный
Разобранный каталог
java -p "%PATH_TO_FX%" --add-modules javafx.controls -cp out\classes com.example.Main
Файл Jar
java -p "%PATH_TO_FX%" --add-modules javafx.controls -jar out\artifacts\app-1.0.jar
Примечание:Требуется атрибут Main-Class
в манифесте.
Модульный
Развернутый каталог
java -p "%PATH_TO_FX%;out\classes" -m app/com.example.Main
Файл Jar
java -p "%PATH_TO_FX%;out\artifacts" -m app/com.example.Main
Или, если Jar был создан / обновлен с --main-class
java -p "%PATH_TO_FX%;out\artifacts" -m app
Примечания:
- Выше предполагается
<project-directory>
является рабочим каталогом. -p
- сокращение для --module-path
-m
- сокращение для --module
-cp
- сокращение от --class-path
или -classpath