主要問題是我無法通過Java運行它來運行我的C++邏輯; 我是否正確創建子流程?有沒有其他方法可以從Java運行.exe文件?
謝謝大家; ---更新! ---
所以我寫了這些來測試以最純粹的方式打開.exe的能力; Eclipse可以看到文件/不會抱怨它不在那裏;
Java文件:
import java.io.*;
public class Runs_A_Exe {
public static void main(String[] args){
try {
ProcessBuilder pb = new ProcessBuilder("M:\\aaa\\bbb\\ccc\\ddd\\eee\\workspace\\Runs Simple Exe\\src\\executables\\a.exe");
Process p = pb.start();
InputStream is = p.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
System.out.println(br.readLine());
}
catch (Exception e) {
System.out.println(e);
}
}
}
C++的文件:
#include <iostream>
int main(void) {
std::cout << "Hey!" << std::endl;
}
輸出:
空
如果您有任何關於生產空白文件子進程的問題,詢問有關*的問題,而不是尋找從Java調用您的代碼的另一種方式。也許這個錯誤在你的C++代碼中(例如,當沒有連接的終端時運行)。 –
@Greg,但它可以使用命令行 – user2738698
是的,你說過。但仍然有可能錯誤地編寫一個程序,使得它可以從命令行運行,但在另一個進程中調用時不會運行。 –