NoClassDefFoundError на org.jruby.Main - PullRequest
       19

NoClassDefFoundError на org.jruby.Main

1 голос
/ 08 октября 2009

Я пытаюсь установить гем hpricot на мою машину с Windows, используя JRuby 1.4.0RC1. Я пытаюсь последовать совету к соответствующему вопросу (см. -> Установка hpricot для JRuby ).

Следуя совету ответа, я вытащил головку мерзавца hrricot и из его каталога выбежал:

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 работает нормально, поэтому я запутался, когда мой путь к классу запутался.

Ответы [ 3 ]

2 голосов
/ 13 октября 2009

Похоже, ваша установка jruby не завершена. Вы взяли bin или src dist? Проверьте, существует ли lib/jruby.jar, убедитесь, что bin/jruby находится в том же месте jruby, что и lib/jruby.jar, и проверьте java -jar lib/jruby.jar -e "puts 'hello'", чтобы проверить, работает ли он.

1 голос
/ 08 октября 2009

Я на Windows. Я не уверен, что JRuby 1.4 пропустит префикс 'j'. JGEM не распознается, но 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/
1 голос
/ 08 октября 2009

Я подозреваю, что sudo не наследует переменные вашей среды. Так что JRUBY_HOME ушел. Попробуйте добавить его в профиль jgem.

...