Скомпилировать 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.