我試圖用Java運行時運行以下命令:運行Linux命令 - runtime.exe
find /home/Alison/workspace/FunctionalTestFramework/src/com/q1labs/qa/selenium/screens -type d | awk -F/ 'NF <= old_NF {print prev} {old_NF=NF; prev=$0} END {print $0}'
直接進入終端,但是當命令正常工作時,在下面的函數跑了提供了以下錯誤:
find: paths must precede expression: |
Usage: find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec] [path...] [expression]
Process exitValue: 1
Java的功能:
try
{
Runtime rt = Runtime.getRuntime();
Process proc = rt.exec("find /home/Alison/workspace/FunctionalTestFramework/src/com/q1labs/qa/selenium/screens -type d | awk -F/ 'NF <= old_NF {print prev} {old_NF=NF; prev=$0} END {print $0}'");
InputStream stderr = proc.getErrorStream();
InputStreamReader isr = new InputStreamReader(stderr);
BufferedReader br = new BufferedReader(isr);
String line = null;
while ((line = br.readLine()) != null)
System.out.println(line);
int exitVal = proc.waitFor();
System.out.println("Process exitValue: " + exitVal);
} catch (Throwable t)
{
t.printStackTrace();
}
我會建議編碼您的特定shell腳本,並從Java運行該腳本。 –