【问题标题】:Calling a Custom Java Class in JRuby在 JRuby 中调用自定义 Java 类
【发布时间】:2013-12-06 07:40:49
【问题描述】:

我在尝试使用 JRuby 调用自定义 java 类时遇到问题:

"未初始化的常量 Classifier::SentimentClassifier"

require 'java'
require 'lib/SentimentClassifier.jar'

class Classifier 
    def self.classify
       classifier = SentimentClassifier.new
    end
end

【问题讨论】:

    标签: java ruby-on-rails ruby jar jruby


    【解决方案1】:

    jRuby 可以使用的类和主动将其导入程序之间是有区别的 - 请参阅https://github.com/jruby/jruby/wiki/CallingJavaFromJRuby

    require 'lib/SentimentClassifier.jar' 告诉 jRuby 你想让那个 jar 的内容对你的程序可用,但它本身不导入任何类。

    在 Java 中也是如此 - 将 jar 添加到程序的类路径中与导入其中一个类不同(实际上这是先决条件 - 您不能导入不在类路径中的类)。

    你需要java_import你的班级的全名:

    require 'java'
    require 'lib/SentimentClassifier.jar'
    java_import 'com.yourpackage.SentimentClassifier';
    
    
    class Classifier 
        def self.classify
           classifier = SentimentClassifier.new
        end
    end
    

    【讨论】:

    • 不想导入Java类也可以参考全名:com.yourpackage.SentimentClassifier.newJava::ComYourpackage::SentimentClassifier.new
    猜你喜欢
    • 2011-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-01
    • 1970-01-01
    相关资源
    最近更新 更多