[英]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.