當我在IDEA中運行一個主類時,它將模塊及其依賴關係放在模塊路徑上。是否有可能將其更改爲類路徑?如何在IDEA中使用classpath而不是模塊路徑運行Java 9應用程序?
1
A
回答
2
如果您未定義模塊信息,IDEA會在類路徑上設置應用程序和依賴關係。由於你有一個模塊信息它是一個明確的模塊,所以它必須在模塊路徑。通常你會把你的依賴作爲自動模塊來處理。
無論如何,你的依賴至少有一個很好的理由在類路徑上。我們在這裏討論了Why Java 9 does not simply turn all JARs on the class path into automatic modules?
例如,mymodule依賴於一個自動模塊,但它需要一個不能成爲自動模塊的jar。在命令行上,它會這樣:
java -cp legacy.jar -p「mymodule.jar; automodule.jar;」 -m mymodule/com.example.mymodule.Application
IMO intellij目前不支持。作爲至少在類路徑上運行整個應用程序的解決方法,您可以重新命名模型信息以禁用/暫時不成爲拼圖模塊。
相關問題
- 1. 如何在Sinatra模塊化應用程序中從模塊路徑重定向到根應用程序路徑?
- 2. 使用Java 9運行應用程序,java.base模塊不會「打開java.io」
- 3. java運行良好,'絕對'路徑,不運行CLASSPATH指定
- 4. 是否可以在Teamcity IPR運行器中使用Idea 9 Android模塊?
- 5. 如何啓動java應用程序而不必指定classpath?
- 6. 如何在部分路徑中使用應用程序模型?
- 7. Ember.js路徑只能用「應用程序/#/路徑」,而不是「應用程序/路徑」
- 8. {} project.parent.basedir採用路徑子模塊,而不是家長模塊路徑的
- 9. 運行ASP.NET應用程序的路徑
- 10. 如何構建java桌面應用程序運行時模塊?
- 11. 如何輸出運行路徑而不是位置路徑?
- 12. 從ItelliJ運行Maven目標時使用ItelliJ Idea模塊類路徑
- 13. 在java中獲取當前用戶的路徑而不是應用程序路徑
- 14. 在IntelliJ IDEA 9中,如何在應用程序運行後運行一個ant任務?
- 15. 在應用程序中導入模塊,而不是包
- 16. 使用powerpoint對象模型而不運行powerpoint應用程序
- 17. 如何使用CloudFoundry.com在Cloud中運行Java SE應用程序?
- 18. 如何檢查路徑是應用程序的緩存路徑?
- 19. 如何在類路徑中使用jar運行java類?
- 20. 如何檢查應用程序運行的路徑?
- 21. 如何獲取運行時Web應用程序路徑?
- 22. 如何在java應用程序中刪除上下文路徑
- 23. 如何設置正在運行的程序的應用程序路徑?
- 24. 在App.xaml.cs中獲取應用程序運行路徑
- 25. 如何在燒瓶應用程序中使用絕對路徑?
- 26. 運行在雲Java的GUI應用程序9
- 27. 使用路徑模塊
- 28. 如何在程序運行時啓用java程序追加特定路徑到類路徑
- 29. hta/javascript如何使用相對路徑執行應用程序
- 30. 如何獲取應用程序使用打印機運行的路徑?
我理解這個問題意味着他更喜歡從類路徑運行整個項目。爲什麼?誰知道,也許是爲了測試兼容性。也許是爲了避免不適合轉變爲自動模塊的依賴關係的問題(例如,因爲他們拆分了一個包)。 – Nicolai
是的,我編輯了我的答案 – Daniel
我不認爲這個問題是答案 - 就我所見,IntelliJ在使用JDK9時不提供使用classpath而不是模塊路徑的選項。這樣做的原因是什麼?實際上,整個Java生態系統都與模塊不兼容 - 所有主要開源項目中都有拆分包,無效的模塊名稱(任何包含netty,cassandra等本機詞的jar)都在這裏。現在使用模塊是一場艱苦的戰鬥,任何人都不想戰鬥。 –