【发布时间】:2009-11-24 12:45:40
【问题描述】:
我正在尝试通过 Ruby 脚本编译 java 源文件。但是我对以下行为感到有些困惑
compile_results = `javac #{source_file}`
运行失败并出现“没有这样的文件...”错误。我弹出了irb
irb(main):001:0> `javac -help`
Errno::ENOENT: No such file or directory - javac -help
from (irb):1:in ``'
from (irb):1
irb(main):002:0> `csc`
=> "Microsoft (R) Visual C# 2005 Compiler version 8.00.50727.3053\nfor Microsoft
(R) Windows (R) 2005 Framework version 2.0.50727\nCopyright (C) Microsoft Corpo
ration 2001-2005. All rights reserved.\n\nfatal error CS2008: No inputs specifie
d\n"
但是 javac 和 csc 都在 PATH 上。例如如果我从运行 ruby 脚本的 shell 手动运行 javac,则可以访问 java 编译器。 源文件存在。
我尝试了 ruby 1.8.7 和 1.9.1 (Windows)。有人看到我缺少的东西吗?
更新:
我认为这与命令行参数无关。相反,由于某些奇怪的原因,它无法访问 javac。我将javac %1 行放在一个批处理文件中,并以通常的方式调用该批处理文件。这行得通...但仍然不确定 javac 的整个问题是什么。
【问题讨论】: