簡體   English   中英

將Runtime.exec()與字符串[]一起使用

[英]Using Runtime.exec() with String [ ]

我正在嘗試執行從Java傳遞4個參數的bash腳本。 我可以使用以下代碼完美地執行腳本,而無需使用參數:

  try { String command = "bash bash/testbash.sh"; Runtime run = Runtime.getRuntime(); Process pr = run.exec(command); pr.waitFor(); BufferedReader buf = new BufferedReader(new InputStreamReader(pr.getInputStream())); String line = ""; while ((line=buf.readLine())!=null) { System.out.println(line); } } catch (Exception e) { System.out.println("Exception " + e); e.printStackTrace(); } } 

所以我要制作一個String [],將命令和參數都傳遞給Runtime.exec(),如下所示:

  try { String[] command ={"bash bash/testbash.sh"}; Runtime run = Runtime.getRuntime(); Process pr = run.exec(command); pr.waitFor(); BufferedReader buf = new BufferedReader(new InputStreamReader(pr.getInputStream())); String line = ""; while ((line=buf.readLine())!=null) { System.out.println(line); } } catch (Exception e) { System.out.println("Exception " + e); e.printStackTrace(); } } 

這給了我這個錯誤:

 Exception java.io.IOException: Cannot run program "bash bash/testbash.sh": error=2, No such file or directory java.io.IOException: Cannot run program "bash bash/testbash.sh": error=2, No such file or directory at java.lang.ProcessBuilder.start(ProcessBuilder.java:1042) at java.lang.Runtime.exec(Runtime.java:615) at java.lang.Runtime.exec(Runtime.java:483) at bashExecuter.main(bashExecuter.java:43) Caused by: java.io.IOException: error=2, No such file or directory at java.lang.UNIXProcess.forkAndExec(Native Method) at java.lang.UNIXProcess.<init>(UNIXProcess.java:135) at java.lang.ProcessImpl.start(ProcessImpl.java:130) at java.lang.ProcessBuilder.start(ProcessBuilder.java:1023) ... 3 more 

這對我來說毫無意義。 bash文件顯然存在,因為我只是將其與String命令一起使用,但是當我將相同的東西與String []命令一起使用時,它不在嗎? 如何傳遞帶有參數的命令?

String []命令= {“ bash bash / testbash.sh”};

String[] command ={"bash", "bash/testbash.sh"};

暫無
暫無

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

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