首页
学习
活动
专区
圈层
工具
发布

Jruby问题
EN

Stack Overflow用户
提问于 2010-04-19 00:36:55
回答 2查看 3.4K关注 0票数 9

我试图用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

  • Package
  1. 在本地安装gem : java -jar jruby-complete-1.1.6.jar -S -i ./ chronic.jar将其安装到jar: jar cf chronic.jar -C chronic中。
  2. 编写了两行测试脚本,并将其保存为testt.rb:

要求‘慢性’

Chronic.parse('tomorrow')

  1. 与: jrubyc testt.rb
  2. 一起运行生成的java类testt.class,其中包含以下内容( jruby-complete.jar和chronic.jar与java类位于同一个文件夹中):java .:/jruby-complete.jar:./chronic.jar testt

我得到以下错误:

线程"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)

代码语言:javascript
复制
 from testt.rb:2
代码语言:javascript
复制
 ...internal jruby stack elided...
代码语言:javascript
复制
 from Module.const\_missing(testt.rb:2)
代码语言:javascript
复制
 from (unknown).(unknown)(:1)  

我真的不明白我做错了什么,我完全被困在了这个问题上。我是Ruby中的一个菜鸟,更习惯Python:不要错过一个转换异教徒的机会!:-)谢谢。

EN

回答 2

Stack Overflow用户

发布于 2010-04-20 18:32:22

据我所知,看上去你并没有做错什么,而且很可能是出了问题。您能用最近的版本(http://jruby.org/download)来尝试您的示例吗?如果您仍然看到这个问题,可以在http://bugs.jruby.org/上创建一个bug吗?谢谢。

票数 2
EN

Stack Overflow用户

发布于 2010-04-19 07:49:27

将其放在测试脚本的顶部:

require 'rubygems'

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2664593

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档