【发布时间】:2011-03-31 02:45:25
【问题描述】:
我正在为我在 JRuby 中创建的库开发 Java 包装器,但我无法读取 JAR 中的文件。
我已经打开了 JAR,文件就在那里,位于 JAR 的根文件夹中。
但是,当我尝试运行时:
File.read("myfile.txt")
它会抛出以下错误:
C:\temp>java -jar c:\libraries\XmlCompare.jar
file:/C:/libraries/XmlCompare.jar!/lib/xmlcompare/app.rb:19:in `initialize':
No such file or directory - myfile.txt (Errno::ENOENT)
我什至尝试通过以下方式使路径成为绝对路径(假设文本文件位于根目录,并且正在执行的 ruby 源代码位于 lib/xmlcompare 内部):
File.read("#{File.dirname(__FILE__)}/../../myfile.txt")
然后我得到:
C:\temp>java -jar c:\libraries\XmlCompare.jar
file:/C:/libraries/XmlCompare.jar!/lib/xmlcompare/app.rb:19:in `initialize':
No such file or directory -
file:/C:/libraries/XmlCompare.jar!/lib/xmlcompare/../../myfile.txt
(Errno::ENOENT)
有什么想法可以让我完成这项工作吗?
【问题讨论】:
标签: jar filesystems jruby