在ruby中,我想执行一些本地命令,它会生成一个文件,然后我想读取文件的内容并对其进行修改。ruby thread不等待
但是我总是得到空。
这是代码:
exec "java -jar xx.jar --output main.txt";
content=IO.read('main.txt');
content="somethinkg:"+content;
File.open('main.txt','w') do |f|
f.puts content
end
产生main.txt,但是我不能修改的内容。
然后我觉得它可能是由线程引起的,当main.txt
被读取时,java命令没有完成,所以内容是空的。
然后我尝试这样的:
t=Thread.new do
exec "java -jar xx.jar --output main.txt";
end
t.join
content=IO.read('main.txt');
puts content
content="somethinkg:"+content;
File.open('main.txt','w') do |f|
f.puts content
end
但是什么都没有改变,我仍然不能获得内容。
什么问题?
尝试没有'exec' Exec之后没有代码每隔因为EXEC交换执行内存试试系统或反引号操作符 – Viren
@Viren这听起来正确的 - 你应该添加它作为答案,我是基地的方式:) –
@Viren:使用'system(“java ...”)'而不是? – hguser