2009-12-17 9 views
5

Ich habe für eine Weile mit Ruby programmiert und ich genieße es wirklich. In letzter Zeit habe ich begonnen, Ruby Code zu kompilieren. Aus mehreren Gründen ist die Verwendung von Ruby2exe keine Option für mich. Also habe ich beschlossen, Jruby einen Versuch zu geben (das Erzeugen eines Glases wäre gut genug).Kompilieren Sie jruby "Hallo Welt" Problem

Ich benutze Windows und ich installierte Java JDK 6u17 (unter C: \ Programme \ Java \ jdk1.6.0_17).

Ich installierte jruby 1,4 bei C: \ jruby

ich eine Hallo Welt in Java erstellt, kompiliert und ausgeführt es ganz gut (so Java funktioniert gut).

Ich habe eine Datei "script.rb" mit:

puts "Hello, world"

ich dieses Programm mit jruby laufen:

jruby script.rb

Und es funktioniert gut.

ich gesetzt habe JAVA_HOME auf C: \ Programme \ Java \ jdk1.6.0_17

ich erfolgreich auch laufen:

java -jar c:\jruby\lib\jruby.jar script.rb

ich dann mit dem Befehl kompilieren:

jruby -S jrubyc script.rb

Erzeugt die Klasse 'script.class'

Mein Problem ist, dass ich keine Möglichkeit, um richtig auszuführen script.class

fand ich versuchen:

java -cp .:c:\jruby\lib\jruby.jar script

Und ich bekomme die Fehlermeldung:

Exception in thread "main" java.lang.NoClassDefFoundError: script 
Caused by: java.lang.ClassNotFoundException: script 
    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: script. Program will exit. 

ich auch versucht, Kopieren von jruby-complete-1.4.0.jar in das lokale Verzeichnis sowie einige andere Optionen.

Wer weiß, was mache ich falsch?

+0

Vielen Dank für diese Frage. Ich habe danach gesucht: 'jruby -S Jrubyc script.rb', aber alles, was ich finden konnte, war die ruby2java-Seite (http://kenai.com/projects/ruby2java/pages/Home), was bedeutet, dass ich eine Klasse in Ruby verwenden muss, und selbst dann habe ich diese zwei Fehler ** 1 ** http://kenai.com/jira/browse/JVMSCRIPT-7 ** 2 ** http://kenai.com/projects/ruby2java/lists/issues/archive/2009-09/message/0 – atomicules

Antwort

9

Angenommen, Sie auf Fenster sind, ich glaube, Ihre -cp arg ist falsch: Es Semikolon begrenzt sein sollte:

java -cp .;c:\jruby\lib\jruby.jar script

Aber auch, hatte ich mehr Glück durch die CLASSPATH env separat einstellen, zB:


C:\ruby>set CLASSPATH=c:\Program Files\jruby-1.4.0\lib\jruby.jar; 

C:\ruby>java hello_world 
Hello, world! 

Aber vielleicht ist das, weil mein Klassenpfad einen Platz darin braucht.

Welche Version von JRuby verwenden Sie? Wie Sie sehen können, bin ich auf 1.4.

+0

Funktioniert perfekt ! Danke Rob. Ich wusste, dass es ein kleines Detail war, das ich vermisste, weil ich alle Schritte befolgte. – Edu