2011-03-22 17 views
5

से एक जावा वर्ग कॉलिंग मैं JRuby से boilerpipe उपयोग करने के लिए कोशिश कर रहा हूँ। मैं JRuby से जावा फोन करने के लिए guide देखा है, और इसे सफलतापूर्वक इस्तेमाल किया है एक और जावा पैकेज के साथ, लेकिन क्यों एक ही बात boilerpipe के साथ काम नहीं कर रहा है पता नहीं कर सकते हैं।समस्याएं JRuby

मैं मूल रूप से JRuby से जावा के बराबर करने के लिए कोशिश कर रहा हूँ:

URL url = new URL("http://www.example.com/some-location/index.html"); 
String text = ArticleExtractor.INSTANCE.getText(url); 

JRuby में यह कोशिश की:

require 'java' 
url = java.net.URL.new("http://www.example.com/some-location/index.html") 
text = Java::DeL3sBoilerpipeExtractors::ArticleExtractor.INSTANCE.getText(url) 

यह boilerpipe के लिए API Javadocs पर आधारित है। यहां त्रुटि है:

jruby-1.6.0 :042 > Java::DeL3sBoilerpipeExtractors::ArticleExtractor 
NameError: cannot load Java class deL3sBoilerpipeExtractors.ArticleExtractor 
     from org/jruby/javasupport/JavaClass.java:1195:in `for_name' 
     from org/jruby/javasupport/JavaUtilities.java:34:in `get_proxy_class' 
     from /usr/local/rvm/rubies/jruby-1.6.0/lib/ruby/site_ruby/shared/builtin/javasupport/java.rb:45:in `const_missing' 
     from (irb):42:in `evaluate' 
     from org/jruby/RubyKernel.java:1087:in `eval' 
     from /usr/local/rvm/rubies/jruby-1.6.0/lib/ruby/1.8/irb.rb:158:in `eval_input' 
     from /usr/local/rvm/rubies/jruby-1.6.0/lib/ruby/1.8/irb.rb:271:in `signal_status' 
     from /usr/local/rvm/rubies/jruby-1.6.0/lib/ruby/1.8/irb.rb:270:in `signal_status' 
     from /usr/local/rvm/rubies/jruby-1.6.0/lib/ruby/1.8/irb.rb:155:in `eval_input' 
     from org/jruby/RubyKernel.java:1417:in `loop' 
     from org/jruby/RubyKernel.java:1190:in `catch' 
     from /usr/local/rvm/rubies/jruby-1.6.0/lib/ruby/1.8/irb.rb:154:in `eval_input' 
     from /usr/local/rvm/rubies/jruby-1.6.0/lib/ruby/1.8/irb.rb:71:in `start' 
     from org/jruby/RubyKernel.java:1190:in `catch' 
     from /usr/local/rvm/rubies/jruby-1.6.0/lib/ruby/1.8/irb.rb:70:in `start' 
     from /usr/local/rvm/rubies/jruby-1.6.0/bin/irb:17:in `(root)' 

ऐसा लगता है कि यह उचित जावा पैकेज नाम में कैमेलकेस को पार्स नहीं करता है। मैं क्या गलत कर रहा हूं? मेरा मानना ​​है कि मैं अपने classpath ठीक (पिछले 3 प्रविष्टियों) सेट कर लेते हैं, हालांकि वहां xerces संभवतः दो बार शामिल किया जा रहा के साथ कुछ संघर्ष हो सकता है:

$ echo $CLASSPATH 
:/jellly/Maui1.2:/jellly/Maui1.2/src:/jellly/Maui1.2/bin:/jellly/Maui1.2/lib/commons-io-1.4.jar:/jellly/Maui1.2/lib/commons-logging.jar:/jellly/Maui1.2/lib/icu4j_3_4.jar:/jellly/Maui1.2/lib/iri.jar:/jellly/Maui1.2/lib/jena.jar:/jellly/Maui1.2/lib/maxent-2.4.0.jar:/jellly/Maui1.2/lib/mysql-connector-java-3.1.13-bin.jar:/jellly/Maui1.2/lib/opennlp-tools-1.3.0.jar:/jellly/Maui1.2/lib/snowball.jar:/jellly/Maui1.2/lib/trove.jar:/jellly/Maui1.2/lib/weka.jar:/jellly/Maui1.2/lib/wikipediaminer1.1.jar:/jellly/Maui1.2/lib/xercesImpl.jar:/jellly/boilerpipe-1.1.0/boilerpipe-1.1.0.jar:/jellly/boilerpipe-1.1.0/lib/nekohtml-1.9.13.jar:/jellly/boilerpipe-1.1.0/lib/xerces-2.9.1.jar 

उत्तर

9

मैं मॉड्यूल का नाम हम नीचे रखा लगता है की कोशिश कर के खिलाफ सलाह देते हैं जावा ::, असामान्य पैकेजों के लिए यह बहुत बुरी तरह उलझन में हो सकता है। java_import 'your.weird.package.ArticleExtractor' का प्रयोग करें या यदि सभी पैकेज घटकों रूबी विधि नामकरण के साथ संगत कर रहे हैं, आप भी जावा :: your.weird.package.ArticleExtractor कर सकते हैं।

इसके अलावा

, जब से तुम इस में आ सकते हैं ... आप ArticleExtractor :: उदाहरण के रूप में उदाहरण चर संदर्भ के लिए, क्योंकि हम एक रूबी निरंतर रूप में यह नक्शा चाहता हूँ।

मज़े करो!

+0

धन्यवाद चार्ल्स का शुद्ध माणिक कार्यान्वयन लपेटता उपयोग कर सकते हैं, एक आकर्षण की तरह काम किया! – ehsanul

+0

"de.l3s" से शुरू होने वाले पैकेज बनाने के लिए क्षमा करें। L3S कंपनी/अनुसंधान केन्द्र के नाम पर मैं जब boilerpipe पुस्तकालय [http://www.L3S.de/](http://www.L3S.de/) –

+2

आप StackOverflow प्यार होगा विकसित करने के लिए काम कर रहा था है। JRuby से लाइब्रेरी का उपयोग करने के बारे में एक प्रश्न पूछें और आपको जेआरबी के मुख्य डेवलपर और लाइब्रेरी के निर्माता का जवाब मिल जाएगा! (प्रश्न पूछने के 6 मिनट के भीतर, कम नहीं।) –

0

तुम भी अच्छा Jruby Boilerpipe Gem जो जावा कोड

या Boilerpipe Ruby Boilerpipe Gem

require 'boilerpipe' 

Boilerpipe::Extractors::ArticleExtractor.text("https://github.com/jruby/jruby/wiki/AboutJRuby")