我在Jar中打包了ruby文件(未编译)。我使用Scriplet从我的Java类中调用它们。
在我的Jar中,我将所有Ruby文件放在/ app文件夹中。当我运行我的代码时,我的Java调用RubyClassA.rb。然后RubyClassA.rb调用RubyClassB.rb。在这两个类中,我运行以下代码:
puts File.dirname(__FILE__)
在RubyClassA中,我得到:/ app。
在RubyClassB中,我得到:/full/path/to/jar/my_jar.jar!/ app
我需要这个完整的路径(在RubyClassB中)从Jar中的其他文件中读取。但是,我想从RubyClassA中读取这些文件。我不确定为什么我会从每个班级得到不同的结果。如果有人能解释我在这里做错了什么,我会非常感激。
编辑:
这两个文件都位于同一个JAR
我正在使用JRuby 1.7.18
RubyClassA被Java类调用,RubyClassB被Ruby类调用(RubyClassA)