[英]How to convert a normal java project in intellij into a JavaFx project
我目前正在使用普通的java項目(gradle項目),並希望將其轉換為JavaFx項目,而無需將現有源重新導入到新的Javafx項目中。 有沒有辦法實現這個目標?
沒有什么可以轉換的。
我不相信“普通”Java項目和JavaFX項目之間的理念存在任何差異。
當然,在Idea 12.x +中,有一個可用於創建新JavaFX項目的向導。 但我認為它所做的就是創建一個示例hello world應用程序 - 在初始創建之后,項目的工作方式與任何其他Java項目沒有任何區別。
這就是它應該如何,JavaFX只是Java。 Oracle不會在其分發中區分JavaFX和Java,也不應在其項目類型中區分IDE。
我相信,在這種情況下,即使我錯了,我說得對,如果我錯了也沒關系。
更新
所以我錯了很重要:-)
使用Idea 13.1.4,如果我使用File | New Project | Java
創建一個新項目 File | New Project | Java
File | New Project | Java
,有以下資源設置( File | Settings | Compiler
):
?*.properties;?*.xml;?*.gif;?*.png;?*.jpeg;?*.jpg;?*.html;?*.dtd;?*.tld;?*.ftl
也就是說,項目的資源只是設置為僅復制特定的文件類型。 因此,您可以通過為fxml和css添加資源復制支持來修改它以獲取某些JavaFX項目中所需的其他文件類型; 即,附加;?*.fxml;?*.css
。
有趣的是,如果使用File | New Project | JavaFX
創建新項目 File | New Project | JavaFX
File | New Project | JavaFX
,有以下資源設置:
!?*.java;!?*.form;!?*.class;!?*.groovy;!?*.scala;!?*.flex;!?*.kt;!?*.clj
從本質上講,它復制的不是源文件,一種文件黑名單集而不是文件白名單集,而不是其他項目創建模板所使用的。 真的很奇怪......無論如何,資源集是用戶可配置的,所以你可以根據需要修改它們,一旦你這樣做,你就不應該有任何問題(我相信,但我以前錯了;-)
建議 - 將第三方構建工具與IDE結合使用
你可能最好將你的構建基於Gradle或Maven等第三方工具。 Idea使用這些外部構建工具(和其他工具)非常有效 。 使用第三方工具的優點是:
當然,使用第三方構建工具的缺點是學習它們的復雜性(以及許多怪癖),因為有時它們可能是相當野獸。 所以我認為這是一個權衡 - 小型,個人探索性項目不需要它們,您打算與其他人分享的大型項目或項目可以從使用這些工具中受益。
一種解決方案是使用Scene Builder生成代碼,然后將其集成到現有的IntelliJ項目中。 雖然應該可以將其作為模塊導入,但您也可以簡單地將代碼移動到需要的位置(對包語句進行適當的更正等)。 如果您發現項目中未識別出javafx導入,請嘗試以下解決方案:
首先,請確保按照本教程中的初始步驟為JavaFX設置IntelliJ。 注意:下面我提到1.8,但這應該適用於1.7+。 我推薦1.8+。
其次確保現有項目設置允許使用javaFX
第三步確保為支持JavaFX的JDK配置模塊
此外,請注意,如果您有maven項目,則可能需要將fxml放在特定位置“/ main / resources /”。 看看這個。
這對我有用,我希望它對你有所幫助。
我按照這些步驟
Controller.java,Main.java and sample.fxml
到src目錄下的(A)項目中的模塊中,如A/user-interface/src
sample.fxml
發現一個錯誤,因為它引用了控制器類作為sample.Controller
將它改為'Controller'。 它以這種方式工作(因為我刪除了sample
包文件夾 File | Project Structure | Modules
File | Project Structure | Modules
user-interface
模塊 dependencies
選項卡 +
標記將舊的非gui模塊添加為模塊依賴項 注意:你可以跳過添加模塊的依賴關系,讓intellij為你做,只需在舊模塊中鍵入一個類的名稱, alt+enter
(燈泡魔術) - > add module depenency
所以經過大量的谷歌搜索,我終於找到了自己!
如果你可以在Intellijd中創建新的Javafx項目並且它工作得很好,但是當你打開一個正常的java應用程序時碰巧使用javafx不起作用,(因為java只是不想解析javafx引用)
對我 "jre/lib/ext/jfxrt.jar"
是:你必須將"jre/lib/ext/jfxrt.jar"
文件添加到我的Windows機器上IDEA內的模塊類路徑,這是C:\\Program Files\\JetBrains\\IntelliJ IDEA Community Edition 2018.3.3\\jre64\\lib\\ext\\jfxrt.jar
。
現在它終於建立了!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.