2015-09-07 77 views
0

所以我成功地写了一个jruby文件并从jar文件中读取。使用Jruby而不是Ruby创建一个gem

我还创建了一个独立的Ruby gem,安装它并成功使用它。

我想用Jruby编写一个gem(而不是ruby)。当我曾尝试这样做,并安装宝石后,它给了我下面的错误:

`require': cannot load such file -- java (LoadError) 

是否有使用JRuby是从不同的方式,写一个宝石USIG红宝石写宝石一种特定的方式?如果是这样,请直接给我一个有用的教程,帮助我使用jruby创建一个宝石

谢谢。

编辑:

添加以下到jruby_gem.gemspec文件

s.platform = 'java' 

使用命令内置的宝石:

gem build jruby_gem.gemspec 

并且使用命令安装它:

gem install jruby_gem-0.0.0 

,当我试图使用命令来运行它:

irb 
require 'jrubt_gem' 

我还是得到了同样的错误。

+0

是用纯ruby编写的宝石还是调用java库?纯红宝石应该在技术上能够在MRI或jRuby上运行。你是否在安装或运行宝石时遇到错误?如果你在运行时得到它,你如何运行它? –

+0

没有错误。我还包括java以及.jar文件。我使用gem build构建它,并使用gem install进行安装。 –

+0

@joonty请检查我的编辑.. –

回答

0

使用以下命令

jruby -S gem build jruby_gem.gemspecs

jruby -S gem install jruby_gem-0.0.0-java.gem

为我工作,终于。

1

Rubygems是所有ruby实现(包括MRI(原始C-Ruby),JRuby,Rubinius等)使用的通用ruby代码的一种封装格式。

当您在您的宝石中使用平台特定的代码时,例如Java在JRuby或C-Extensions中用于基于C的Rubies,您可以使用适当的Ruby使用gem。

这意味着,如果您想直接在您的gem中调用Java代码,则必须将其与JRuby结合使用。如果您只是在MRI上安装并需要宝石,它将不起作用。

+0

所以我安装了Jruby,当我使用gem build和gem安装时,它使用Ruby。我如何让它使用Jruby宝石来构建和安装我的宝石? –

+0

这取决于你如何安装ruby和jruby。您可能想要使用像[rvm](https://rvm.io),[rbenv](https://github.com/sstephenson/rbenv)或甚至[chruby](https:// github)这样的Ruby版本管理器.COM /现代/ chruby)。 –

+0

感谢您的帮助,谢谢。我希望这可以帮助别人。 –

相关问题