JRE не видит модули зависимостей в .jar файле

Я написал приложение с JavaFx в IntelliJ IDEA , собрал его в jar встроенным инструментом, и при запуске jar, выдает ошибку что не может найти не один модуль зависимости.

Запускаю через cmd:

java --module-path "D:\...\MyJar.jar" --module caster/caster.Main

И каждый раз выдает ошибки:

Error occurred during initialization of boot layer              
java.lang.module.FindException: Module javafx.controls not found, required by caster 

java.lang.module.FindException: Module javafx.fxml not found, required by caster

java.lang.module.FindException: Module okhttp3 not found, required by caster

и тд, ко всем зависимостям

module-info.java

open module caster{
requires javafx.controls;
requires javafx.fxml;
requires okhttp3;
requires annotations;
requires java.desktop;                                                                        
}

Хотя в jar они есть:

пример

Что нужно поправить, или IDEA неправильно собирает?


Ответы (2 шт):

Автор решения: adisteyf

Ты неправильно написал java команду. Тебе надо было написать --module-path "путь до специальной для запуска библиотеки java fx\lib", а ты указал jar файл. Во вторых метода --modules не существует, тебе надо написать --add-modules javafx.controls,javafx.fxml, если используешь еще какие-то модули, то добавь их через запятую. Целиком команда должна выглядеть так: java --module-path "<путь до JavaFX библиотеки>\lib" --add-modules javafx.controls,javafx.fxml -jar <путь до .jar без кавычек>. Скачать саму JavaFX библиотеку ты можешь здесь: https://gluonhq.com/products/javafx/ просто выбери свою ОС и скачай той же версии java, на которой ты писал и не забудь разархивировать и достать от туда папку.

→ Ссылка
Автор решения: Saturn 1401

Нашел решение здесь, а именно:

  1. Добавил новый Main класс который не наследуется от Application
  2. Проверил чтобы файлы javafx находились в моем jar, они были добавлены по умолчанию
  3. Запустил как обычный jar: java -jar MyApp.jar
→ Ссылка