我试图用ruby (使用jruby)编写一些代码,用jrubyc编译成java字节码,然后部署到远程机器上,在JVM上运行它(在那里没有ruby可用)。
只要我愿意坚持使用标准的jruby库,一切都会很好。正如在jruby网站上解释的那样,我只需将jruby-complete.jar库复制到远程机器,并在运行时将其包含在类路径中。我启动我的编译脚本,它的工作:酷!
当我需要一些其他库(通常是rubygems)来运行我的脚本时,问题就开始了。
我知道一些很酷的东西,比如rawr,我成功测试过的-which --把你需要的东西放在一个包里。然而,这不是我想要的解决方案:我将有许多小脚本可以独立运行,我不希望每个脚本都增长到至少10 MB,因为我疯狂地在每个脚本中都包含了jruby-complete.jar。
我想要的是为我需要使用的每个库编译一个.jar,将它们全部放在远程机器上的一个公共文件夹中,并在运行时将它们包含在类路径中,当我在JVM上运行已编译的jruby脚本时。
这就是说,我试着遵循下面的说明:http://blog.nicksieger.com/articles/2009/01/10/jruby-1-1-6-gems-in-a-jar
我用“慢性”创业板试了一下这里的例子。一步一步前进:
--no-ri
要求‘慢性’
Chronic.parse('tomorrow')
我得到以下错误:
线程"main“中的异常file:/Users/ave2/NetBeansProjects/jrubywatir/lib/jruby-complete.jar!/METAINF/jruby.home/lib/ruby/site_ruby/shared/builtin/core_ext/symbol.rb:1:in‘`const_`const’:未初始化的常量慢性(NameError)
from testt.rb:2 ...internal jruby stack elided... from Module.const\_missing(testt.rb:2) from (unknown).(unknown)(:1) 我真的不明白我做错了什么,我完全被困在了这个问题上。我是Ruby中的一个菜鸟,更习惯Python:不要错过一个转换异教徒的机会!:-)谢谢。
发布于 2010-04-20 18:32:22
据我所知,看上去你并没有做错什么,而且很可能是出了问题。您能用最近的版本(http://jruby.org/download)来尝试您的示例吗?如果您仍然看到这个问题,可以在http://bugs.jruby.org/上创建一个bug吗?谢谢。
发布于 2010-04-19 07:49:27
将其放在测试脚本的顶部:
require 'rubygems'
https://stackoverflow.com/questions/2664593
复制相似问题