2012-07-18 109 views
0

我有一個虛擬jar,其唯一的工作是顯示一個簡單的jdialog,並要求用戶從提供的組合中選擇所需的內存大小。選擇所需的最大內存用戶單擊開始按鈕來運行我的主Jar。運行時設置xmx

我在dummy jar中使用runtime.getRuntime.exec()方法來調用我的主jar。

我硬編碼我的主要罐子路徑其工作fine.But我想知道如何獲得我的主jar的位置以編程方式時,兩個罐子居住在不同的位置?

我可以使用下面的鏈接中使用的方法獲取我的虛擬jar的路徑。

How to get the path of a running JAR file?

但請諮詢我,讓我的主程序的JAR路徑..

+0

可能最簡單和最便攜的方式是讓您的安裝程序創建一個包含所有位置的屬性文件。 – biziclop 2012-07-18 18:08:57

回答

1

你不能,除非你知道他們將被安裝在那裏/部署。爲什麼不將它們打包在同一個JAR中,然後使用所描述的技術找到JAR路徑?

你應該有兩個類main()方法,比如org.kittu.Mainorg.kittu.Dummy。將它們打包到main.jar並確保org.kittu.Dummy是默認情況下(在清單中)執行的類。

在你Dummy類,得到的main.jar的位置和存儲用戶想要的金額,然後exec()的類似:

java -Xmx <memory> -jar <path to main.jar> org.kittu.Main

運行您Main類。

+0

好主意,您可以使用OneJar將所有內容打包在一起。 – biziclop 2012-07-18 18:11:21

+0

one jar ???你想讓我在我的主項目中添加虛擬jar功能?好的。如果我這樣做,在用戶選擇內存後,你是否建議我調用runtimr.exec()來執行jar? – Kittu 2012-07-18 18:18:47

+0

是的,那會是什麼問題? – 2012-07-18 18:19:43