簡體   English   中英

ruby中的Windows命令

[英]Windows commands in ruby

如何在Ruby應用程序中運行Windows命令?

我想嘗試運行類似的東西:

output = `cd #{RAILS_ROOT}/lib && java HelloWorld #{param1} #{param2}`

我打印上面的行結果並將其粘貼到Windows中的命令提示符,它工作正常。 但是,當我運行app並點擊此代碼時,輸​​出是空白而不是我從HellowWorld返回的字符串。 在HelloWorld中我做了一個System.out.print(“helloworld”)

下列:

output = `cmd.exe /C dir`
puts "OUTPUT #{output}"

返回:

OUTPUT

在JRuby 1.5.5中修復的JRuby 1.5.3中的問題: http//www.jruby.org/2010/11/10/jruby-1-5-5.html

Backticks對我來說很好。 嘗試:

output = `dir`

向自己證明它在起作用。 那時,您的問題是如何從命令行運行Java應用程序,或者為什么您的特定應用程序不起作用。 請注意,您可以暫時更改工作目錄,如下所示:

Dir.chdir(File.join(RAILS_ROOT,'lib')) do
  output = `...`
end

嘗試在這里使用File#join 它將為您生成跨平台路徑

http://apidock.com/ruby/File/join/class

my_path = File.join(RAILS_ROOT, "lib")
output = `cd #{my_path} && java HelloWorld #{param1} #{param2}`

您也可以這樣執行系統命令:

`cd #{my_path} && java HelloWorld #{param1} #{param2}`
system("cd #{my_path} && java HelloWorld #{param1} #{param2}")
%x[cd #{my_path} && java HelloWorld #{param1} #{param2}]

相關主題: Ruby的系統調用

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM