Ruby 1.9 Kernel::system 无法在 Windows 上运行
我在 ruby 脚本中使用 system "java -cp xxx.jar" ,它在 Mac OS 上运行良好。但是当我在Windows 7 x64上运行该脚本时,那些java -cp xxx.jar
没有得到执行,也没有报告错误。
I use system "java -cp xxx.jar"
in my ruby script and it runs well on Mac OS. But when I run the script on Windows 7 x64, those java -cp xxx.jar
did not get executed and no error was reported.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
如果您的命令无法运行,
system
不会抛出异常或任何异常(这可能就是您说“没有报告错误”的原因)。因此,您需要检查
java
是否在您的PATH
中;默认情况下,在 Windows 上不是这样,您需要将 JDK 的bin
目录添加到您的PATH
中。system
doesn't throw an exception or anything if your command fails to run (which may be why you said "no error was reported").So, you need to check whether
java
is in yourPATH
; by default on Windows, it's not, and you need to add the JDK'sbin
directory to yourPATH
.另外,如果您在类路径中使用多个 java 类,并且在 Windows 情况下使用“:”(冒号)而不是“;”(分号),则您的脚本也无法执行;
classpath_separator = RUBY_PLATFORM =~ /mswin/ ? ';' : ':'
如果你想捕获系统命令的输出,你可以使用下面的代码:
Also your script can not be executed if you use several java classes in the classpath with ":"(colon) instead of ";"(semicolon) in Windows case;
classpath_separator = RUBY_PLATFORM =~ /mswin/ ? ';' : ':'
And if you want to catch output of the system command you can use next code: