繁体   English   中英

org.jruby.Main上的NoClassDefFoundError

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

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM