我試圖通過JAVA運行UNIX命令。我的shell命令調用一個豬腳本。當我這樣做在Unix終端excersize它工作正常,但通過Java我沒有得到任何輸出。使用JAVA和UNIX運行Pig命令
PFB的JAVA代碼:
public String executeCommand(String command) {
StringBuffer output = new StringBuffer();
Process p;
try {
System.out.println("process started");
p = Runtime.getRuntime().exec(command);
//p.waitFor();
System.out.println("before reader");
BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream()));
//String line = "";
System.out.println("After reader ");
while (reader.readLine() != null) {
System.out.println("inside while loop *******************************");
output.append(reader.readLine() + "\n");
System.out.println(reader.readLine());
}
System.out.println("while loop endedr");
} catch (Exception e) {
e.printStackTrace();
System.out.println("inside exception");
}
return output.toString();
}
pig_command: 時間豬-param下載=「/家/ ******** /下載/存檔/預訂/ 20160620 * /部分*「-param outdir =」/ home/*********/OUTDIR/HOURLYBOOKING/20160620/05「-stop_on_failure -x mapreduce /home/directory/pig/pigscript.pig
我怎麼樣運行java程序: java -cp /home/directory/java_jar.jar com.Example.Tester pig_command
問題:儘管輸出在HDFS中成功生成,但上述while循環中的代碼不會打印任何內容(應打印作業日誌)。
感謝您的答覆,但是這已經被測試過,結果是相同的,而內碼循環未執行。 –