JAR中的JRuby从__FILE__得到不同的结果

时间:2015-01-19 05:20:23

标签: ruby jar jruby

我在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)

0 个答案:

没有答案