[英]NoClassDefFoundError on org.jruby.Main
我正在嘗試使用JRuby 1.4.0RC1在我的Windows機器上安裝hpricot gem。 我正在嘗試遵循相關問題的建議(請參閱 - > 為JRuby安裝hpricot )。
根據答案的建議,我拉了hpricot的git head並從它的dir ran:
jruby -S rake package_jruby
cd pkg
sudo jgem install ./hpricot-0.8.1-jruby.gem
但是當我運行它時,我得到以下NoClassDefFoundError:
Exception in thread "main" java.lang.NoClassDefFoundError: org/jruby/Main
Caused by: java.lang.ClassNotFoundException: org.jruby.Main
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)
Could not find the main class: org.jruby.Main. Program will exit.
顯然我的JRUBY_HOME \\ lib \\ jruby.jar迷路了。
運行jruby -v工作正常,所以我很困惑我的類路徑搞砸了。
看起來你的jruby安裝不完整。 你抓住bin
還是src
dist? 檢查lib/jruby.jar
存在,確保bin/jruby
與lib/jruby.jar
位於同一個jruby位置,並測試java -jar lib/jruby.jar -e "puts 'hello'"
以查看它是否正常運行。
我懷疑sudo沒有繼承你的環境變量。 所以JRUBY_HOME走了。 嘗試將其添加到jgem配置文件。
我在Windows上。 我不確定JRuby 1.4是否會刪除'j'前綴。 jgem不被認可,但寶石是。 無論如何,當我獲得寶石環境時:
C:\tmp\hpricot>gem environment
RubyGems Environment:
- RUBYGEMS VERSION: 1.3.5
- RUBY VERSION: 1.8.7 (2009-09-30 patchlevel 174) [java]
- INSTALLATION DIRECTORY: C:/jruby-1.4.0RC1/lib/ruby/gems/1.8
- RUBY EXECUTABLE: C:/jruby-1.4.0RC1/bin/../bin/jruby.bat
- EXECUTABLE DIRECTORY: C:/jruby-1.4.0RC1/bin/../bin
- RUBYGEMS PLATFORMS:
- ruby
- universal-java-1.6
- GEM PATHS:
- C:/jruby-1.4.0RC1/lib/ruby/gems/1.8
- GEM CONFIGURATION:
- :update_sources => true
- :verbose => true
- :benchmark => false
- :backtrace => false
- :bulk_threshold => 1000
- "install" => "--env-shebang"
- "update" => "--env-shebang"
- REMOTE SOURCES:
- http://gems.rubyforge.org/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.