我有一個jar文件,其中有檢測其絕對路徑(啓動此文件的位置的當前目錄)的函數。它工作正常。從命令行運行jar文件時設置目錄路徑
但現在,爲了獲得管理權限,我啓動從另一個jar文件這個文件,而使用elevation binary executable類似:
Elevate.exe javaw.exe -jar path-to-my-jar-file
在這裏,請注意,Elevate.exe
和JAR文件在同一目錄,但我試着給出只是jar文件名以及絕對路徑,但在兩種方式中,文件啓動,它具有管理權限,一切正常,除了現在相同的方法給出錯誤的當前目錄路徑的事實。
這次我得到:C:\Windows\System32
我試過很多東西,但是每當我用另一個jar文件使用上述方法從Runtime.getRuntime().exec("cmd \\c ");
啓動這個jar時,當前目錄路徑檢測不到。爲何如此,在這種情況下如何找出正確的路徑?
編輯: 我試圖讓使用正確的目錄名稱:
String dir = System.getProperty("user.dir") &&
String dir = new File (".").getAbsolutePath().toString();
兩個返回時,從外部進程啓動時的文件是獨立啓動,C:\Windows\System32
相同的正確路徑。請建議我該如何解決這個問題。
非常感謝這樣寶貴的答案。其實Elevate.exe和jar文件駐留在同一個目錄中。在運行Elevate.exe之前,我傳遞命令「cd dir」,以便dos提示符更改爲特定的目錄。奇怪的是,在我的桌面上,它在筆記本電腦上工作,但它並不在win7上。我會在前夕測試你的解決方案,因爲我沒有其他機器在這裏,但我確定它會工作,謝謝。 – Johnydep