我正在使用JRuby中創建的庫的Java包裝器,但無法讀取JAR中的文件。如何使用JRuby在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)
我甚至曾試圖彌補因爲文本文件是在路徑絕對(根和正在執行是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並查看目錄structor.You可能需要將jar的名稱預先添加到'resource_as_stream'方法中。例如'... resource_as_stream('/ my_jar/myfile.txt')' – 2012-05-31 15:31:26
'java.lang.Object.java_class.resource_as_string('/ myfile.txt')'應該以同樣的方式工作 – 2013-04-24 09:50:41