编译jruby"Hello world"问题

Edu*_*Edu 6 compilation jruby

我用Ruby编程了一段时间,我真的很喜欢它.最近我开始需要编译一些ruby代码.有几个原因使用Ruby2exe不是我的选择.所以我决定尝试Jruby(生成一个罐子就足够了).

我正在使用Windows,我安装了java JDK 6u17(在C:\ Program Files\Java\jdk1.6.0_17).

我在C:\ jruby安装了jruby 1.4

我在java中创建了一个hello world,编译并执行它就好了(所以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.
Run Code Online (Sandbox Code Playgroud)

我也尝试将jruby-complete-1.4.0.jar复制到本地目录以及其他几个选项.

谁知道我做错了什么?

Rob*_*own 10

假设你在Windows上,我认为你的-cp arg是错误的:它应该是以分号分隔的:

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!
Run Code Online (Sandbox Code Playgroud)

但也许那是因为我的类路径需要一个空间.

您使用的是什么版本的JRuby?如你所见,我在1.4.