ファイルを開き、それに行を書き込む c++ の実行可能ファイルがあります。それ自体で正常に動作します。
#include <iostream>
#include <fstream>
using namespace std;
int main(){
ofstream fout;
fout.open("test.txt");
if(fout.is_open()){
cout<<"test"<<endl;
fout<<"Hello World!" << endl;
}
fout.close();
return 0;
}
そして、Javaで main() を作成して、そこから次のように呼び出しました。
public static void main(String args[]){
File f = new Resources().getFile("test.exe");
System.out.println(f.exists());
String path = f.getAbsolutePath();
try{
Process p = new ProcessBuilder(path).start();
BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line = "";
while(line != null){
line = br.readLine();
System.out.println(line);
}
p.destroy();
}catch(Exception e){
System.out.println(e.getMessage());
}
}
メインの最初の行は私のプロジェクトからのもので、ファイルが見つかり、それも機能します。
問題は、exe を単独で実行すると、ファイルが作成されて書き込まれることです。java main() を実行すると、stdout から出力を取得してもファイルが作成されません。したがって、実行可能ファイルは実行されますが、ファイルは作成されません。
私は人々を狂わせます...どうすればいいですか?