[問題] 用指令編譯遇上module的問題

作者: liu2007 (è–¯)   2019-10-10 01:39:25
從以前到現在我都只管寫java
編譯、路徑、lib都交給eclipse
後來因為發現用oracle的jdk,jre要付費
轉而使用openJDK與openFX
結果發現用eclipse內建的匯入外部的openFX.jar檔沒用
上網查怎麼用eclipse+openJDK+openFX來開發javaFX的程式
才發現原來多了一個module這個我完全陌生的東西(我跟寫程式脫離太久了)
然後我不知道哪根筋不對
或者可能是網路上的java module化的教學大多都是用command做示範
module + command line直接把我按在地上磨擦
所以開始學習土法煉鋼用command編譯、執行java程式
現在的進度是可以順利javac我專案裡的所有java檔
javac -cp .;..\openFX\* -d bin *.java
但是執行的時候
<...\bin>
java -cp .;..\..\openFX\* applications.Main
會跳出 錯誤: 遺漏執行此應用程式所需的 JavaFX 程式實際執行元件
我用錯誤訊息上網估狗,發現原始碼
java.launcher.cls.error5=錯誤: 遺漏執行此應用程式所需的JavaFX 程式實際執行元

然後上網找會出現java.launcher.cls.error5的原因
有個網站是說:
启动报错:缺少 JavaFX 运行时组件, 需要使用该组件来运行此应用程序
模块化 Java 程序与非模块化 Java 程序的启动方式有所不同。
所以不得已去學習module
可是我找不到如果是用到別人的lib時,這個module該怎麼寫的範例...
我按照範例寫一個空的module-info當然會過
但只要我加入 requires javafx.base
編譯就會產生錯誤,說:
module-info.java:3: error: module not found: javafx.base
requires javafx.base;
^
不管我把javafx的lib放在同一個資料夾也好
或是把openFx\*改成*.jar,或是一個一個指定 -cp .;openFx\a.jar;openFx\b.jar......
都沒有用
想請教各位問題到底出在哪...?
要怎麼讓使用其他.jar檔的lib 能夠被module-info在編譯的時候正確讀取到?
感謝
作者: ssccg (23)   2019-10-10 12:43:00
要不要試試Azul Zulu有直接包好OpenFX版本的OpenJDK

Links booklink

Contact Us: admin [ a t ] ucptt.com