1

我正在尝试使用 JRuby 1.4.0RC1 在我的 Windows 机器上安装 hpricot gem。我正在尝试遵循相关问题的建议(请参阅 ->为 JRuby 安装 hpricot)。

根据答案的建议,我拉出了 hpricot 的 git 头并从它的目录中运行:

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 工作正常,所以我很困惑我的类路径在哪里搞砸了。

4

3 回答 3

2

看起来您的 jruby 安装不完整。你抓住了bin还是srcdist?检查是否lib/jruby.jar存在,确保bin/jruby与 位于同一 jruby 位置lib/jruby.jar,并测试java -jar lib/jruby.jar -e "puts 'hello'"它是否正常工作。

于 2009-10-13T14:54:34.983 回答
1

我在 Windows 上。我不确定 JRuby 1.4 是否删除了“j”前缀。jgem 未被识别,但 gem 被识别。无论如何,当我获得 gem 环境时,我得到:

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/
于 2009-10-08T16:59:41.397 回答
1

我怀疑 sudo 不会继承您的环境变量。所以 JRUBY_HOME 不见了。尝试将其添加到 jgem 配置文件。

于 2009-10-08T03:32:24.067 回答