2017-01-12 23 views
2

我想從Java SE遷移到它的JDK - OpenJDK/OpenJFX,但我對從A點到B點的正確步驟感到困惑:過渡到OpenJDK/OpenJFX [多模塊Maven項目]

A點(當前狀態):我在Windows 7,64位上使用IntelliJ IDEA CE開發了一個多模塊項目Maven項目。這包括父母,客戶端和服務器模塊(共3個)。我的項目目前依賴於JavaFX(不是OpenJFX)。

B點(所需狀態):我想從我的項目中刪除對Oracle的JDK和JavaFX的所有引用,並完全依賴OpenJDK/OpenJFX。我的目標是最終允許使用我的應用程序以獲取利潤,因此這似乎是避免Oracle費用的最佳方法。

我的選擇似乎是(1)自己從sources構建OpenJDK,或者(2)使用預先構建的二進制文件,如by Red Hat。建立它自己似乎避免了模糊的紅帽條款discussed here.爲了進一步混淆我,JetBrains提供了他們自己的Windows x64 OpenJDK builds,我不知道這些是否應該以某種方式使用。

我知道OpenJDK沒有帶有JavaFX,所以我需要從源代碼構建JavaFX,不管如何,因爲described here但它說我必須有Gradle,而不是提及Maven。

這給我留下了2個相關的問題:

  1. 難道我真的要遷移從Maven來搖籃剛剛建立的OpenJDK /的OpenJFX?我可以同時使用嗎?也許我可以使用Gradle來完成這個構建,然後使用這些構建在我當前的Maven項目中?請澄清。

  2. 我找不到任何有用的教程,詳細介紹Windows/Maven項目遷移到使用OpenJDK/OpenJFX的過程。鑑於此背景,您能否提供有用的資源?

    我假設使用二進制將節省時間,但自己構建它會授予我最多的許可自由。

我不尋求法律意見,或許可解釋 - 只有邏輯步驟的itelligent開發商將採取實現我的目標。

+2

我不認爲你理解Java應用程序和Java運行時之間的關係。 「我想從我的項目中刪除對Oracle的JDK和JavaFX的所有參考。」你指的是什麼參考?或者,你的「項目」是什麼意思?開發週期是你編寫一些源代碼,創建一些其他資源(圖像,支持文件等),並編譯源代碼。然後你通常將類文件和資源捆綁到一個jar文件中。該jar文件不包含Java運行時或任何「引用它」:您只需使用Java運行時即可執行它。 –

+0

通過編譯生成的類文件將包含有關它們構建的Java版本*的信息,因此它們將不會使用早期版本運行。但是他們並不關心他們使用的版本的實現。 –

+0

「項目」我指的是我寫的.java文件的集合,即「pom」。與每個模塊相關的xml文件,資源(.fxml,.css,.png)。通過「引用」,我的意思是我想削減與Oracle的JDK的關係,無論可能需要什麼。它可能只需要將IntelliJ的默認項目更改爲OpenJDK,沒有更多(?)如果jar文件不包含運行時,那麼如何確保應用程序在最終用戶的適當運行時上運行?我假設我會構建OpenJDK,然後構建OpenJFX,並將OpenJFX運行時(?)包含在我分發的應用程序中。 :/ – Nova

回答

1

關於Gradle,您只是用它來構建OpenJFX。這並不意味着你需要將你的Maven項目轉換爲Gradle。一旦將OpenJFX覆蓋到OpenJDK安裝上(請參閱Overlay - JDK 8),您的項目應像以前一樣解析所有JFX參考。

+0

謝謝!我想我現在已經參加了比賽 –