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
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?