Java org.jruby.Main上的NoClassDefFoundError

Java org.jruby.Main上的NoClassDefFoundError,java,windows,jruby,hpricot,Java,Windows,Jruby,Hpricot,我正在尝试使用JRuby 1.4.0RC1在我的Windows计算机上安装hpricot gem。我正试图按照建议解决相关问题(请参见->) 根据答案的建议,我从hpricot的git头中取出了dir ran: jruby -S rake package_jruby cd pkg sudo jgem install ./hpricot-0.8.1-jruby.gem 但当我运行此命令时,我得到以下NoClassDefFoundError: Exception in thread "main"

我正在尝试使用JRuby 1.4.0RC1在我的Windows计算机上安装hpricot gem。我正试图按照建议解决相关问题(请参见->)

根据答案的建议,我从hpricot的git头中取出了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\u HOME\lib\JRUBY.jar丢失了


运行jruby-v可以很好地工作,所以我不知道我的类路径在哪里被弄乱了。

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

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

我在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/

我在窗户上。我不确定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/

看起来你的jruby安装没有完成。你抓到
bin
src
dist了吗?检查
lib/jruby.jar
是否存在,确保
bin/jruby
lib/jruby.jar
位于同一个jruby位置,并测试
java-jar-lib/jruby.jar-e“放置‘hello’
,看看它是否正常工作。

你的jruby安装似乎没有完成。你抓到
bin
src
dist了吗?检查
lib/jruby.jar
是否存在,确保
bin/jruby
lib/jruby.jar
位于同一个jruby位置,并测试
java-jar lib/jruby.jar-e“puts'hello'
,看看它是否正常工作。

如何将jruby\u添加到jgem配置文件的主页$JRUBY_HOME在我的bash和Windows cmd会话中得到响应。执行“sudo jgem set”并检查它是否有变量。如果没有,请转到~jgem(它是jgem home),找到.profile文件,并在那里添加变量。非常感谢您的建议。不确定我是否能按你的建议做。JRuby将出现在gem环境中(见下文)。当我签出安装目录时,我没有看到任何表示概要文件的文件。请参阅下面我的“答案”了解更多内容。如何将JRUBY_主页添加到jgem配置文件中$JRUBY_HOME在我的bash和Windows cmd会话中得到响应。执行“sudo jgem set”并检查它是否有变量。如果没有,请转到~jgem(它是jgem home),找到.profile文件,并在那里添加变量。非常感谢您的建议。不确定我是否能按你的建议做。JRuby将出现在gem环境中(见下文)。当我签出安装目录时,我没有看到任何表示概要文件的文件。请看我下面的“答案”了解更多内容。我认为你的思路是正确的!我使用“JRuby 1.4.0RC1 Windows可执行文件”安装JRuby。当我尝试使用java-jarlib/jruby.jar-e“puts'hello'”时,我得到一条消息:“无法访问jarfile lib/jruby.jar”。我是否必须在CP中为每个java执行指定JRUBY_HOME,或者是否有一种方法(或者安装程序应该完成这一点)可以使JRUBY_HOME包含成为默认值?谢谢你的帮助!您可能想尝试RC2安装程序;我认为RC1安装程序或最初运行JRuby的bat文件存在一些问题。现在,它附带了一个jruby.exe,可以正常工作了。如果没有,请提交一个错误在我认为你在正确的轨道上!我使用“JRuby 1.4.0RC1 Windows可执行文件”安装JRuby。当我尝试使用java-jarlib/jruby.jar-e“puts'hello'”时,我得到一条消息:“无法访问jarfile lib/jruby.jar”。我是否必须在CP中为每个java执行指定JRUBY_HOME,或者是否有一种方法(或者安装程序应该完成这一点)可以使JRUBY_HOME包含成为默认值?谢谢你的帮助!您可能想尝试RC2安装程序;我认为RC1安装程序或最初运行JRuby的bat文件存在一些问题。现在,它附带了一个jruby.exe,可以正常工作了。如果没有,请在