[英]Java - How to enter runtime arguments (of main method) by double-clicking a jar file?
我好幾次遇到這個問題。 如果我將Java應用程序打包在一個可接受用戶參數的可執行jar文件中,那么用戶必須通過以下命令從命令提示符調用該程序(jar文件):
java -jar "jar-file-name.jar"
但是我希望每當用戶雙擊可執行jar文件(需要來自用戶的參數)時,如果我們從命令提示符調用了jar文件,就會出現一個窗口(命令提示符窗口)。
我知道一個解決方案是使用批處理文件.bat
來運行jar文件。 還有其他解決方案嗎?
解釋原因:
有2個java JVM exe發射器:
默認情況下,JAR文件擴展名與javaw.exe相關聯,這就是雙擊時無法獲得控制台的原因。
其他人給出的答案,並添加了我自己的答案:
重寫您的應用程序,以便它使用Java GUI項進行輸入和輸出而不是System.in/System.out。 根據您的需要,這可能過於復雜。
您提到創建批處理文件以便運行基於控制台的Java JVM(java.exe),您還可以創建指定命令行的Windows快捷方式: java -jar jar-file-name.jar
您可以更改.jar的Windows文件關聯(但通常這是一個壞主意 - 新的Java安裝可能會重置此設置,這將意味着從jar運行的所有Java應用程序都將具有控制台)
您可以使用像WinRun4J這樣的Java啟動程序 ,它允許您簡單地刪除帶有圖標和配置文件的雙擊EXE,該文件指定應如何運行應用程序(使用/不使用控制台,以及使用任何其他JVM和命令行參數)
我親自去了項目的最后一個選項 - 我的jar文件不可執行,用戶必須雙擊EXE。 它還允許我為我的項目指定一個漂亮的圖標,並通過使用不同的exe / config文件提供啟動(調試/非調試模式)的多個選項。
您需要將“.jar”的資源管理器關聯重新分配給java.exe而不是javaw.exe。 這有點值得懷疑 - 創建控制台輸出窗口可能更有意義。 當然,如果命令行上沒有提供所需執行參數的用戶輸入,您可以輕松彈出一個對話框。
有一個控制台輸出的JTextArea工作的代碼在這里 。
這是一個操作系統功能。
如果您想要完全控制,那么您必須在程序內部(或使用包裝類)提供此功能。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.