2013-10-10 59 views
0

打開一個.jar文件我想打開的.jar應用程序的文件,我想用Java來做到這一點。解釋,例如我有文件SF_Antivalent.xml,我想用uppaal.jar打開它。我如何使用Java來做到這一點。我寫了下面的代碼,但它不起作用。如何通過Java

public class test7 { 
public static void main(String[] args){ 


    Runtime rt=Runtime.getRuntime(); 
    String file="C:\\Users\\V\\Documents\\diplwmatiki\\SFBs\\SF_Antivalent.xml"; 
    Process p=rt("C:\\Windows\\System32\\java.exe", "-jar", "C:\\Users\\" 
      + "V\\Documents\\uppaal-4.0.13-aca\\uppaal-4.0.13\\uppaal.jar" + file); 
} 

}

和我得到這個錯誤:該方法RT(字符串,字符串,字符串)是未定義的類型測試。 有什麼需要做的嗎?

+0

你忘了'EXEC()'? –

+0

應用程序類路徑中是否存在Jar文件? – MadProgrammer

回答

0

你的問題是有點混亂,我相信你想運行一些應用程序,並通過XML文件作爲參數傳遞給它...

問題是,你正在治療rt作爲一個函數/方法,而不是一個對象。 Runtime具有要發送到這個外部過程必須傳遞給此陣列內的它自己的元件用於執行外部命令,例如一個exec方法...

Runtime rt=Runtime.getRuntime(); 
String file="C:\\Users\\V\\Documents\\diplwmatiki\\SFBs\\SF_Antivalent.xml"; 
Process p=rt.exec(new String[]{ 
    "C:\\Windows\\System32\\java.exe", 
    "-jar", 
    "C:\\Users\\V\\Documents\\uppaal-4.0.13-aca\\uppaal-4.0.13\\uppaal.jar", 
    file}); 

而且,每個命令或參數方法

這意味着塔"V\\Documents\\uppaal-4.0.13-aca\\uppaal-4.0.13\\uppaal.jar" + file實際上不會有你認爲它會影響。

我還建議您使用ProcessBuilder而不是Runtime#exec,但那就是我。

+0

是的,非常感謝!這正是我需要的。再次感謝! – Vasouli

0

你所得到的錯誤的原因是因爲RT是一個運行時的對象,而不是一個方法。要調用rt的方法做到這一點:

rt.someMethodName(); 
0

看上面的代碼無法獲得XML文件,你要執行的東西,而不是打開文件JAR檔案內

查找到getResourceAsStream,這會給你的可能性然而加載從JAR的任何文件