JRuby에서 만든 라이브러리의 Java 래퍼로 작업 중이며 JAR 내에있는 파일을 읽을 수 없습니다.JRuby를 사용하여 Jar 파일을 읽는 방법
JAR을 이미 열었으며 파일이 JAR의 루트 폴더에 있습니다.
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)
심지어 텍스트 파일에 있음을 주어진 절대 경로를 (만들기 위해 노력했다 :
File.read("myfile.txt")
그것은 다음과 같은 오류가 발생합니다 : 내가 실행하려고하지만
, 루트 및 실행중인 루비 소스가 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 디렉토리를 살펴보십시오. jar의 이름을'resource_as_stream' 메소드 앞에 추가해야 할 수도 있습니다. 예를 들어'... resource_as_stream ('/ my_jar/myfile.txt')' –
'java.lang.Object.java_class.resource_as_string ('/ myfile.txt')'는 똑같은 방식으로 작동해야합니다. –