在JRuby中打开JSON文件在调用生成的Java类文件时引发异常
我使用jrubyc将Ruby编译成类文件。其中一个Ruby文件包含在JRuby中打开JSON文件在调用生成的Java类文件时引发异常,ruby,json,jar,jruby,jvm-languages,Ruby,Json,Jar,Jruby,Jvm Languages,我使用jrubyc将Ruby编译成类文件。其中一个Ruby文件包含 dat = File.open "data.json", "r" 旁边还有一个data.json文件。如果我直接使用jruby命令,这个程序运行得很好 编译Ruby文件并将其放入jar后,在运行java-jar时出现以下错误: 为了确保没有将data.json放错位置,我将data.json复制到了整个jar文件中,但出现了相同的错误 有什么办法可以这样做吗?编译完代码后,JRuby是否无法打开JSON文件?我认为默认情况下它
dat = File.open "data.json", "r"
旁边还有一个data.json文件。如果我直接使用jruby命令,这个程序运行得很好
编译Ruby文件并将其放入jar后,在运行java-jar时出现以下错误:
为了确保没有将data.json放错位置,我将data.json复制到了整个jar文件中,但出现了相同的错误
有什么办法可以这样做吗?编译完代码后,JRuby是否无法打开JSON文件?我认为默认情况下它不会查看JAR内部。我创建了一个小测试,能够重现您的问题。然后我触摸了data.json,代码不再有错误。我不确定如何指定要在JAR中查找数据文件。touch data.json不是JRuby方法……但您说的一点是正确的,默认情况下它不会在JAR中查找。我将data.json放在JAR文件之外,它运行良好。谢谢很抱歉造成混淆,我的意思是我在命令行上运行了touch data.json。触摸创建具有给定名称的空文件。很高兴你弄明白了!
Exception in thread "main" org.jruby.exceptions.RaiseException: (Errno::ENOENT) data.json
at org.jruby.RubyFile.initialize(org/jruby/RubyFile.java:334)
at org.jruby.RubyIO.open(org/jruby/RubyIO.java:1144)
at RUBY.(root)(file:/Users/x5lai/Documents/rqrcode.jar!/read.rb:2)
...