在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