簡體   English   中英

Java ProcessBuilder使用參數調用另一個Java

[英]Java ProcessBuilder calling another java with arguments

我想使用ProgressBuilder運行另一個帶有參數插入的jar。

示例: es.jar文件和Main類,以及arg sl 我知道我可以這樣使用Runtime.getRuntime().exec()

String arg = "sl";
Process p = Runtime.getRuntime().exec("java -cp \"es.jar " + arg + "\" Main");

如果我使用ProgressBuilder 而不使用arg sl ,它將是這樣的:

processBuilder.command("java","-cp","es.jar", "Main").start();

但是,需要arg sl ,我該如何插入? 我嘗試了以下代碼,但顯然它們都不起作用:

processBuilder.command("java","-cp","es.jar sl", "Main").start(); // failed
processBuilder.command("java","-cp","\"es.jar sl\"", "Main").start(); // failed also

java -cp "es.jar sl" Main沒有任何意義,我很確定它會失敗

java狀態為java [-options] class [args...] ,因此選項之后的第一個參數是要執行的類,因此根據您的問題,這意味着需要將其

java -cp es.jar Main sl ,或更具體地說,關於您的問題, processBuilder.command("java","-cp","es.jar", "Main", arg).start();

請改用以下命令:

java -cp es.jar Main

暫無
暫無

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

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