我有一个 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());
}
}
main 中的第一行来自我的项目,它找到了文件,它也可以工作。
问题是当 exe 单独运行时,它会创建文件并写入文件。当我运行 java main() 时,即使我从 stdout 获得输出,也不会创建文件。所以可执行文件运行但不创建文件。
我要疯了……怎么办?