在 jruby 中实现自定义 java 类

2024-04-24

我正在尝试实现 java 类的集合斯坦福 NLP 解析器 http://nlp.stanford.edu/software/lex-parser.shtml在 jRuby 中

我能够在 jRuby 中实现常规 Java,但不能实现斯坦福解析器类

#my requires/imports/includes, included multiple versions to be safe
require 'java'
include Java
require 'c:\\stanford-parser\\stanfordparser.jar'
require 'C:\\Stanford-Parser\\Current\\stanford-parser.jar'
require 'c:\\sun\\stanfordparser'
require 'rubygems'
include_class 'edu.stanford.nlp.parser.lexparser.LexicalizedParser'


#try to create an object of the java class i am importing, LexicalizedParser
lp = edu.stanford.nlp.parser.lexparser.LexicalizedParser
#the line above is what causes the error

#check if regular Java is working
list = java.util.ArrayList.new 
a = "1"
b = "2"
list.add(a)
list.add(b)
d = list[0]
puts d # all of this works

我收到这个错误

~\rubyjavatest\lib\main.rb:15: undefined local variable or method `edu' for main:Object (NameError)

(~代表我剪掉了整个路径以缩短它)

另外,如果我尝试这个:

lp = java::edu::stanford::nlp.parser::lexparser::LexicalizedParser

我收到这个错误

~\rubyjavatest\lib\main.rb:15: cannot load Java class java.edu.stanford.nlp.parser.lexparser.LexicalizedParser (NameError)

任何帮助都会很棒!


尝试这个:lp = LexicalizedParser.new

你需要打电话new就像你对 ArrayList 所做的那样。另外,您不需要在调用后列出完全限定的类名include_class.

我不熟悉斯坦福 NLP 解析器,所以我假设这会起作用。可能需要将其他参数传递给构造函数。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 jruby 中实现自定义 java 类 的相关文章

随机推荐