2009-10-08 4 views
1

J'essaie d'installer la gem hpricot sur mon ordinateur Windows en utilisant JRuby 1.4.0RC1. J'essaie de suivre le conseil à la question connexe (voir ->Installing hpricot for JRuby).NoClassDefFoundError sur org.jruby.Main

Je tirai par les conseils de la réponse de la tête git de hpricot et à partir de son répertoire RAN:

jruby -S rake package_jruby 
cd pkg 
sudo jgem install ./hpricot-0.8.1-jruby.gem 

Mais quand je lance ce je reçois la NoClassDefFoundError suivante:

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. 

Apparemment, mon JRUBY_HOME \ lib \ jruby.jar se perd. Courir jruby -v fonctionne très bien, donc je suis confus où mon chemin de classe est en train de se foirer.

Répondre

1

Je suppose que sudo n'hérite pas de vos variables d'environnement. Donc, JRUBY_HOME est parti. Essayez de l'ajouter au profil de jgem.

+0

Comment ajouter JRUBY_HOME au profil jgem? $ JRUBY_HOME est renvoyé dans mes sessions cmh bash et Windows. –

+0

Ne 'sudo jgem set' et vérifie s'il a la variable. Si ce n'est pas le cas, allez à ~ jgem (que ce soit jgem home), trouvez le fichier .profile, et ajoutez la variable là. –

+0

Merci beaucoup pour vos suggestions. Je ne sais pas si je suis capable de faire ce que vous suggérez. JRuby arrive dans l'environnement de la gemme (voir ci-dessous). Lorsque je consulte le répertoire d'installation, je ne vois aucun fichier représentant un profil. SVP voir ma 'réponse' ci-dessous pour plus de contexte. –

1

Je suis sous Windows. Je ne suis pas sûr si JRuby 1.4 laisse tomber le préfixe 'j'. jgem n'est pas reconnu, mais gem est. Peu importe, quand je environnement gem je reçois:

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

Il semble que votre installation JRuby est pas complète. Avez-vous pris le bin ou src dist? Vérifiez si lib/jruby.jar existe, assurez-vous que bin/jruby est dans le même emplacement jruby que lib/jruby.jar, et tester java -jar lib/jruby.jar -e "puts 'hello'" pour voir si c'est fonctionnel.

+0

Je pense que vous êtes sur la bonne voie! J'ai utilisé le 'JRuby 1.4.0RC1 Windows Executable' pour installer JRuby. Quand je tente java -jar lib/jruby.jar -e "met 'hello'", j'obtiens le message: "Impossible d'accéder à jarfile lib/jruby.jar". Dois-je spécifier JRUBY_HOME dans le CP pour chaque exécution java ou existe-t-il un moyen (ou l'installateur doit-il accomplir cela) que je puisse faire de l'inclusion JRUBY_HOME la valeur par défaut? Merci de votre aide! –

+0

Vous pouvez essayer le programme d'installation RC2; Je pense qu'il y avait quelques problèmes avec le programme d'installation RC1 ou les fichiers de chauve-souris qui fonctionnaient à l'origine JRuby. Maintenant qu'il est livré avec un jruby.exe, il peut fonctionner correctement pour vous. Si ce n'est pas le cas, veuillez envoyer un bug à http://jira.codehaus.org/browse/JRUBY –

Questions connexes