Estoy trabajando en un contenedor Java para una biblioteca que creé en JRuby y no puedo leer un archivo que está dentro del JAR.Cómo leer un archivo dentro de un Jar con JRuby
He abierto el JAR ya y el archivo está allí, ubicado en la carpeta raíz del JAR.
Sin embargo, cuando trato de ejecutar:
File.read("myfile.txt")
que arroja el siguiente error:
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)
Incluso he tratado de hacer la ruta absoluta (teniendo en cuenta que el archivo de texto se encuentra en el raíz y la fuente de ruby que se está ejecutando está dentro de lib/xmlcompare), haciendo:
File.read("#{File.dirname(__FILE__)}/../../myfile.txt")
Pero entonces yo consiga:
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)
¿Alguna idea de cómo puedo hacer esto?
Si esto no funciona, descomprima su jar y mire el directorio structor. Es posible que deba anteponer el nombre del jar al método 'resource_as_stream'. Por ejemplo '... resource_as_stream ('/ my_jar/myfile.txt')' –
'java.lang.Object.java_class.resource_as_string ('/ myfile.txt')' debería funcionar igual –