Скомпилировать проблему jruby "Hello world" - PullRequest
6 голосов
/ 17 декабря 2009

Я давно программирую на 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 Ответ

10 голосов
/ 18 декабря 2009

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

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

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


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

C:\ruby>java hello_world
Hello, world!

Но, возможно, это потому, что моему классу нужен пробел.

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

...