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 に答える