Я новичок в Java11 / все слишком сложный модуль модуля.
Проблема
Итак, я экспортировал свою программу Java11 / JavaFX11 из Eclipse как Runnable JAR.Если я нажимаю JAR, он работает отлично (Eclipse включает все настройки модуля и сам JavaFX автоматически в исполняемый JAR).Однако, если я пытаюсь связать JAR с JRE и запустить его через командную строку со следующим BAT-файлом:
@ECHO OFF
%~dp0\jre\bin\java -jar javaprogram.jar
pause
, я получу:
Error: JavaFX runtime components are missing, and are required to run this application
Press any key to continue . . .
Как мне заставить его просто запустить файл JAR, как он делает, когда я щелкаю по нему?
Способы, которые я пытался исправить это
Самая странная часть, если я просто использую:
java -jar javaprogram.jar
, который просто обращается к установленной JRE, он снова работает.Только когда я прямо указываю на JRE по определенному пути, он кажется сломанным.
В качестве альтернативы, я бы просто связал JavaFX рядом с JRE, но, похоже, не существует способачтобы позвонить --module-path
с относительным путем (поиск в Google это дает мне кучу совершенно не связанных вещей).Кажется, требуется точный путь, который не будет работать, если люди скачивают и распаковывают zip-архив.Это было бы избыточно, потому что Eclipse уже упаковывает JavaFX с JAR.Я не знаю, почему это смущает только потому, что я звоню из командной строки.
Код проекта
Проект, который я пытаюсь получитьЭто работает с открытым исходным кодом, поэтому вы можете проверить код здесь:
https://github.com/SkyAphid/JDialogue
Основной класс - JDialogueCore.
Закрытие
Я не хочу использовать установщики, так как считаю, что это слишком ненормально.Я хотел бы иметь возможность развертывать свое программное обеспечение, как всегда, просто помещая его в архив, который вы можете извлечь и запустить.
Трудно просто погуглить проблемы Google, поскольку я продолжаю получать совершенно не связанные результатыиз-за широты темы.Будем весьма благодарны за любые указания / документы, касающиеся этой проблемы.
Спасибо за потраченное время!