реализация пользовательского Java-класса в Jruby - PullRequest
2 голосов
/ 02 июля 2010

Я пытаюсь реализовать коллекцию классов Java из Stanford NLP Parser в jRuby

Я могу реализовать обычную Java в jRuby, но не классы Stanford Parser

#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)

Любая помощь будет отличной!

1 Ответ

2 голосов
/ 02 июля 2010

Попробуйте это: lp = LexicalizedParser.new

Вам нужно позвонить new, как вы это делали с ArrrayList. Кроме того, вам не нужно указывать полное имя класса после того, как вы позвоните include_class.

Я не знаком с анализатором Stanford NLP, поэтому я предполагаю, что это сработает. Возможно, потребуется передать дополнительные параметры конструктору.

...