Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在JRuby中打开JSON文件在调用生成的Java类文件时引发异常_Ruby_Json_Jar_Jruby_Jvm Languages - Fatal编程技术网

在JRuby中打开JSON文件在调用生成的Java类文件时引发异常

在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文件?我认为默认情况下它

我使用jrubyc将Ruby编译成类文件。其中一个Ruby文件包含

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)
...