Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Ruby > Using Rubygems to Package Java Jarfiles

Reply
Thread Tools

Using Rubygems to Package Java Jarfiles

 
 
Rich Apodaca
Guest
Posts: n/a
 
      09-12-2006
Ruby Java Bridge (RJB) (http://rjb.rubyforge.org/) a good way to use
Java classes and maintain the abiltity to work with both C extensions
and develop Rails applications.

If you could package Java jarfiles in a Rubygem, that would be the
ultimate in convenience. A user could simply use the "gem install"
command, which would automatically install RJB if needed, the jarfile,
and any necessary Ruby glue code. The user could then have access to the
Java library.

The whole process would be essentially the same as working with any
other Rubygem. Any library that depends on this java-ruby hybrid can use
it like any other Rubygem, with all of the advantages.

I've already built a Gem that installs a jarfile. Here's the problem:
with RJB, the jarfiles you use can be specified with:

ENV['CLASSPATH'] = 'my_jarfile.jar'

My question is: how do I locate my_jarfile.jar?

One possibility seems to be Gem.dir, which gives the top-level directory
for installed Gems.

But I need to get the path to my Gem's directory. One way I came up with
was to use (assuming I've got foo-0.1.0):

gem_path = Gem.dir + '/gems/foo-0.1.0/'
ENV['CLASSPATH'] = gem_path + 'my_jarfile.jar'

I've used this approach and it works. But it seems like there must be a
more elegant way to get to a particluar Gem's installation directory.
Also, is there a better way to do what I'm trying to do?

thanks,
Rich

--
Posted via http://www.ruby-forum.com/.

 
Reply With Quote
 
 
 
 
Ola Bini
Guest
Posts: n/a
 
      09-12-2006
Rich Apodaca wrote:
> Ruby Java Bridge (RJB) (http://rjb.rubyforge.org/) a good way to use
> Java classes and maintain the abiltity to work with both C extensions
> and develop Rails applications.
>
> If you could package Java jarfiles in a Rubygem, that would be the
> ultimate in convenience. A user could simply use the "gem install"
> command, which would automatically install RJB if needed, the jarfile,
> and any necessary Ruby glue code. The user could then have access to the
> Java library.
>
> The whole process would be essentially the same as working with any
> other Rubygem. Any library that depends on this java-ruby hybrid can use
> it like any other Rubygem, with all of the advantages.
>
> I've already built a Gem that installs a jarfile. Here's the problem:
> with RJB, the jarfiles you use can be specified with:
>
> ENV['CLASSPATH'] = 'my_jarfile.jar'
>
> My question is: how do I locate my_jarfile.jar?
>
> One possibility seems to be Gem.dir, which gives the top-level directory
> for installed Gems.
>
> But I need to get the path to my Gem's directory. One way I came up with
> was to use (assuming I've got foo-0.1.0):
>
> gem_path = Gem.dir + '/gems/foo-0.1.0/'
> ENV['CLASSPATH'] = gem_path + 'my_jarfile.jar'
>
> I've used this approach and it works. But it seems like there must be a
> more elegant way to get to a particluar Gem's installation directory.
> Also, is there a better way to do what I'm trying to do?
>
> thanks,
> Rich
>


Hi Rich,

We're working on an approach like this for packaging Java extensions to
Ruby systems. If we get what we want, you'll be able to (from JRuby) do
gem install mongrel, choose java-version (instead of linux or mswin32)
from the list, and the Java extension will be automatically installed.
This requires the JRuby runtime to work, of course.

--
Ola Bini (http://ola-bini.blogspot.com)
JvYAML, RbYAML, JRuby and Jatha contributor
System Developer, Karolinska Institutet (http://www.ki.se)
OLogix Consulting (http://www.ologix.com)

"Yields falsehood when quined" yields falsehood when quined.


 
Reply With Quote
 
 
 
 
Rich Apodaca
Guest
Posts: n/a
 
      09-20-2006
Ola Bini wrote:
> Rich Apodaca wrote:
>> The whole process would be essentially the same as working with any
>> One possibility seems to be Gem.dir, which gives the top-level directory
>> Also, is there a better way to do what I'm trying to do?
>>
>> thanks,
>> Rich
>>

>
> Hi Rich,
>
> We're working on an approach like this for packaging Java extensions to
> Ruby systems. If we get what we want, you'll be able to (from JRuby) do
> gem install mongrel, choose java-version (instead of linux or mswin32)
> from the list, and the Java extension will be automatically installed.
> This requires the JRuby runtime to work, of course.


Thanks for the info, Ola. I've written an article describing another
solution that works with the C Ruby implementation (letting you use C
extensions _and_ Java at the same time):

http://depth-first.com/articles/2006...k-the-ruby-way

It might also work with JRuby.

Best,
Rich

--
Posted via http://www.ruby-forum.com/.

 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
jstl,standard jarfiles jimgardener Java 2 12-21-2010 11:52 PM
Rubygems 1.3.5 can't load 'rubygems/defaults/operating_sy..' Eric Roscher Ruby 3 11-24-2009 02:15 AM
[Q] include shell script in my RubyGems package kwatch Ruby 0 02-20-2005 02:47 PM
[BUG] RubyGems: "No such file to load -- rubygems/builder" Erik Veenstra Ruby 4 02-04-2005 10:28 PM
Problems with fresh install of RubyGems on Ubuntu Linux: No suchfile to load -- rubygems/builder (LoadError) Trevor Ruby 5 01-29-2005 12:52 AM



Advertisments