Скомпилировать jruby "Hello world"

Некоторое время я программировал на Ruby, и мне это очень нравится. В последнее время у меня появилась необходимость компилировать некоторый код ruby. По нескольким причинам использование Ruby2exe для меня не вариант. Поэтому я решил попробовать Jruby (достаточно будет создать банку).

Я использую Windows, и я установил Java JDK 6u17 (в C:\Program Files\Java\jdk1.6.0_17).

Я установил jruby 1.4 на C:\jruby

Я создал hello world в java, скомпилировал и выполнил его просто отлично (так что java работает отлично).

Я создал файл "script.rb" с:

puts "Hello, world"

Я запускаю эту программу с Jruby:

jruby script.rb

И это прекрасно работает.

Я установил JAVA_HOME в C: \ Program Files \ Java \ jdk1.6.0_17

Я также успешно запускаю:

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

Затем я компилирую с помощью команды:

jruby -S jrubyc script.rb

Он генерирует класс "script.class"

Моя проблема в том, что я не нашел способа правильно выполнить script.class

Я попробую:

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

И я получаю сообщение об ошибке:

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.

Я также попытался скопировать jruby-complete-1.4.0.jar в локальный каталог, а также несколько других опций.

Кто-нибудь знает, что я делаю не так?

1 ответ

Решение

Предполагая, что вы находитесь в Windows, я думаю, что ваш аргумент -cp неверен: он должен быть разделен точкой с запятой:

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

Но также мне повезло, если я установил CLASSPATH env отдельно, например:


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

C:\ruby>java hello_world
Hello, world!

Но, возможно, это потому, что мой classpath нуждается в месте в нем.

Какую версию JRuby вы используете? Как видите, я на 1.4.

Другие вопросы по тегам