2010-10-14 16 views
0

J'essaie d'utiliser Rawr pour transformer un simple projet Ruby en 3 fichiers en un fichier exécutable à exécuter sur Ubuntu. J'ai couru jruby -S rawr install pour créer le Rakefile et configurer la disposition du répertoire. Tous mes fichiers .rb se trouvent dans le répertoire src à la racine du projet. Quand je cours jruby -S rake rawr:jar, il compile tous les fichiers Ruby et crée le pot juste très bien. Il le place ensuite dans mon répertoire deploy avec .JAR créé Rawr ClassDefNotFoundError

J'essaye d'exécuter le pot de l'intérieur deploy avec java -jar hg_analyzer.jar. Cependant, quand je le fais, je suis accueilli avec cette erreur:

Exception in thread "main" <script>:1:in `require': Linkage error loading compiled script; you may need to recompile 'file:/home/marcw/Documents/hg_analyzer/deploy/jar/hg_analyzer.jar!/main.class': java.lang.NoClassDefFoundError: org/jruby/ast/executable/AbstractScript$RuntimeCache (LoadError) 
    from <script>:1 
    ...internal jruby stack elided... 
    from Kernel.require(<script>:1) 
    from (unknown).(unknown)(:1) 

J'ai aussi essayé de le faire tourner java -cp lib/java/** -jar hg_analyzer.jar, mais en vain. L'entrée Class-Path dans le fichier manifeste du fichier jar est également correcte. main.rb est le fichier principal de Ruby. L'exécution de java avec l'option -verbose indique que correspond au trouvant le pot JRuby et le charge à partir de l'emplacement prévu.

Des idées?

Répondre

0

Compris! Le problème était que Rawr téléchargeait la version 1.5 du runtime JRuby et que j'avais la version 1.4 du compilateur sur mon système.