由於您正在啓動Java - > Java,因此可以使用現有類路徑在命令行上設置類路徑。這種類型的東西在開發環境中也非常好。
ProcessBuilder selfLauncher = new ProcessBuilder(
"java", "-cp", System.getProperty("java.class.path"),
"com.my.mainClass");
selfLauncher.start();
更新: 對於可執行的JAR文件,你將有一個classpath這簡直是對jar文件本身的相對路徑。如果你想要命令行參數,你必須從main保存它們,並在啓動時重新應用它們。
您可以通過將以下程序打包到jar中來查看。我不確定如果在可執行jar文件中有jar文件會發生什麼情況。他們可能會出現在classpath中。
public class TestJarPath {
public static void main(String args[]) throws Exception {
for (String s : args)
System.out.print("[" + s + "] ");
System.out.println();
String cp = System.getProperty("java.class.path");
for (String s : cp.split(";"))
System.out.println(s);
}
}
爲java -jar ..\tst.jar X
,所得到的輸出,如:
[X]
..\tst.jar
如果沒有,你總是可以只獲取參數從主過去了,而不是產生一個新的進程,產生另一個窗口。 – 2010-06-15 15:17:37
我已經創建了另一個窗口,請參閱上面的註釋。 – 2010-06-15 21:34:36