簡體   English   中英

在沒有絕對路徑的情況下從Java運行jar文件

[英]Running a jar File from Java without Absolute Path

我有一個使用Netbeans創建的Calculator.jar文件。

我想使用Java代碼運行該jar文件。 在查看了stackoverflow和一些文檔站點之后,我嘗試了以下方法:

public static void main (String [] args){
    Runtime rt = Runtime.getRuntime();
    Process pr = rt.exec("java -jar C:\\pathToJar\\Calculator.jar);
    pr.waitFor();
}

代碼運行良好,但是我的問題來自文件的路徑。 如果我在沒有絕對路徑的情況下運行該程序,則該程序將運行並完成,但是我永遠不會看到計算器GUI彈出。 當我使用絕對路徑運行時,GUI會按預期方式彈出。

我將jar文件與源代碼放在同一位置。 我認為這樣做可以讓我只需要在沒有絕對路徑的情況下放置Calculator.jar。 但這似乎不起作用。

有誰知道我怎么可能存儲jar文件,所以我不需要使用絕對路徑?

編輯:我還嘗試在名為jarFiles的項目中創建一個單獨的包,並嘗試了路徑jarFiles\\Calculator.jar 那也不起作用。 我認為我對默認路徑/調用命令時cmd默認使用的路徑有誤解。 我不確定。

預先感謝您的任何建議!

我相信您遇到的問題是,當您嘗試

public static void main (String [] args){
    Runtime rt = Runtime.getRuntime();
    Process pr = rt.exec("java -jar \\Calculator.jar");
    pr.waitFor();
}

它查看計算機的根目錄,並且在末尾遺忘了一個引號。 您應該訪問當前工作目錄的方式是簡單地消除\\\\ ,以防萬一,您可能還希望將jar文件路徑括在引號中。

public static void main (String [] args){
    Runtime rt = Runtime.getRuntime();
    Process pr = rt.exec("java -jar \"Calculator.jar\"");
    pr.waitFor();
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM