簡體   English   中英

在Java JDK 1.6中,我需要運行一個接受重定向輸入的可執行文件

[英]In Java JDK 1.6 I need to run an executable that takes in redirected input

在Java JDK 1.6中,我需要運行一個接受重定向輸入的可執行文件,如下所示:

exe < input_file

我的代碼如下所示:

final ProcessBuilder pb = new ProcessBuilder( "exe", "<", "input_file");

// Set working directory
pb.directory( new File( hps.hdfFilePath ) );

// Execute
p = pb.start( );

這將導致錯誤:“找不到文件<”

ProcessBuilder不喜歡“ <”。 如何在JDK 1.6中做到這一點?

重定向由外殼執行,因此您需要啟動外殼。 當前,您正在啟動可執行文件並向其傳遞兩個參數“ <”和“ input_file”。

請在http://docs.oracle.com/javase/7/docs/api/java/lang/ProcessBuilder.html上查看ProcessBuilder的文檔。

重要的是要注意,構造函數的第一個參數之后的所有內容都被解釋為命令行參數。

ProcessBuilder pb = new ProcessBuilder("exe");
Process p = pb.start();
OutputStream pos = p.getOutputStream();

InputStream input = new FileInputStream(new File("input_file"));
byte[] buffer = new byte[1024];
int read = 0;
while((read = input.read(buffer)) != -1) {
    pos.write(buffer, 0, read);
}
input.close();

暫無
暫無

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

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