2012-02-24 232 views
1

進出口文件夾尋找一個解決方案的文件夾,其中的.jar文件位於創建一個新的文件夾。創建jar文件目錄

所以,如果我在C:\test\temp有一個test.jer文件我想能夠創建一個新的文件夾(newFolder):C:\test\temp\newFolder.

任何人都知道如何做到這一點。 我曾嘗試使用

System.getProperty("user.dir"). 

但這只是給了我正確的,如果我雙擊JAR文件。 我需要它從一個調度程序運行,然後位置被改變。

回答

0

一般來說,你不能輕易地揣摩出你的JAR文件在運行時。您的虛擬機的執行環境可以告訴您用戶目錄(如您所說),但這是VM啓動的目錄。所以如果你雙擊你的JAR,那實際上就是JAR所在的目錄。但是,如果你調用的命令行的Java,例如

C:\一些\目錄> java命令C:\ TEMP \ Test.jar的main.Class

然後 「user.dir來」將包含「c:\ some \ directory」。 這種缺乏信息是故意的,因爲它允許VM透明地加載來自不同位置的類。

您最佳的選擇,做你想要將通過選擇的目錄作爲命令行參數是什麼。而在最壞的情況下,你可以使用「user.dir」作爲默認值。但是最好的解決方案究竟取決於你爲什麼要放置JAR所在的目錄。

+0

我在nutshall問題。 「user.dir來」是我的情況下,調度工具調用的jar文件 問題的dir是日誌的位置。 我想把日誌和jar文件放在一起。 jar文件作爲計劃任務運行。所有任務都放在他們自己的文件夾中,並帶有以下日誌。但是該服務必須在不同的機器上進行散佈。 所以同一個程序必須把日誌不同的地方。但它總是必須根據jar文件的位置來放置它們。 有意義嗎? – 2012-02-24 10:24:50

+0

沒有找到解決方案。作爲一個cmd參數結束了jar文件lacation。 – 2012-02-27 07:55:03