RJB Hello World 示例

3

我正在尝试使用RJB(Ruby Java桥)在我的Ruby on Rails项目中从Java类中调用函数。

该Java类如下:

public class HelloWorld {

    int fifty(){
        return 50 ;
    }
   public static void main(String[] args) {
      // Prints "Hello, World" in the terminal window.
      System.out.println("Hello, World");
   }
}

在控制器中,我有以下内容:

  require "rjb"
  def home
      myclass = Rjb::load(classpath ='\\home\\mennatallah\\TopicalClusteringofTweets\\lib\\java_libs\\helloworld.class', jvmargs=[])

      myclass_instance = myclass.new
      @output =   myclass_instance.fifty
  end

出现 " undefined method `new' for nil:NilClass " 的错误,该如何解决?


看起来你正在使用类Unix操作系统。在类Unix操作系统中,路径组件分隔符是“/”,而不是“\”。 - Jörg W Mittag
1个回答

3
您可以尝试以下方法,可能会有所帮助:
Rjb::add_jar( Dir.glob("#{Rails.root}/lib/java_libs/*.jar").join(':'))
Rjb::load(Dir.glob("#{Rails.root}/lib/java_libs/*.jar").join(':'))
test = Rjb.import('HelloWorld')
instance_class  = test.new

主函数是否被调用了 test.new?我将控制台输出重定向到文件(output.txt),但在调用 text.new 后该文件仍然为空。当我在IDE中执行它时,我的 output.txt 文件中确实有“Hello, World”。 - Karen Gonzalez

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接