2015-09-07 33 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

感謝您的幫助,謝謝。我希望這可以幫助別人。 –

相關問題