2009-10-08 7 views
1

JRuby 1.4.0RC1을 사용하여 Windows 컴퓨터에 hpricot gem을 설치하려고합니다. 관련 질문 (->Installing hpricot for JRuby 참조)에 대한 조언을 따르려고합니다. 대답의 조언 당NoClassDefFoundError on org.jruby.Main

나는 Hpricot을의 자식 머리를 당겨 그리고 디렉토리 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는 정상적으로 작동하므로 클래스 경로가 엉망이되어 혼란 스럽습니다.

답변

1

sudo가 환경 변수를 상속하지 않는다고 의심됩니다. 그래서 JRUBY_HOME은 없어졌습니다. 그것을 jgem 프로파일에 추가하십시오.

+0

jgem 프로필에 JRUBY_HOME을 어떻게 추가합니까? $ JRUBY_HOME은 bash 및 Windows cmd 세션에 표시됩니다. –

+0

'sudo jgem set'을 실행하고 변수가 있는지 확인하십시오. 그렇지 않다면, ~ jgem (jgem home)으로 가서, .profile 파일을 찾아 거기에 변수를 추가하십시오. –

+0

제안 해 주셔서 대단히 감사드립니다. 내가 너에게 제안한 것을 할 수 있는지 확신 할 수 없다. JRuby는 gem 환경에서 나오고 있습니다 (아래 참조). 설치 디렉토리를 체크 아웃 할 때 프로필을 나타내는 파일이 보이지 않습니다. Pls 더 많은 맥락에 대한 아래의 '대답'을 참조하십시오. –

1

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/ 
2

당신의 jruby 설치가 완료되지 않은 것 같습니다. bin 또는 src dist를 움켜 잡았습니까? lib/jruby.jar이 있는지 확인하고 bin/jrubylib/jruby.jar과 동일한 jruby 위치에 있는지 확인하고 java -jar lib/jruby.jar -e "puts 'hello'"을 테스트하여 작동하는지 확인합니다.

+0

나는 당신이 올바른 길에 있다고 생각합니다! JRuby를 설치하기 위해 'JRuby 1.4.0RC1 Windows 실행 파일'을 사용했습니다. java -jar lib/jruby.jar -e "puts 'hello'"를 시도하면 "jarfile lib/jruby.jar에 액세스 할 수 없습니다"라는 메시지가 나타납니다. 각 Java 실행을 위해 CP에 JRUBY_HOME을 지정해야합니까, 아니면 JRUBY_HOME을 기본으로 포함시킬 수있는 방법이 있습니까? 당신의 도움을 주셔서 감사합니다! –

+0

RC2 설치 프로그램을 사용해보십시오. RC1 설치 프로그램이나 원래 JRuby를 실행 한 bat 파일에 몇 가지 문제가 있다고 생각합니다. 이제는 jruby.exe와 함께 제공되기 때문에 올바르게 작동 할 수 있습니다. 그렇지 않은 경우 http://jira.codehaus.org/browse/JRUBY에 버그를 제출하십시오. –

관련 문제