Unable to call Java from a Ruby Script

I am trying to call a java class from my ruby script. I have installed
JRuby and JRUBY_HOME and JAVA_HOME environment variables are pointing
to the correct locations. However I am not able to run a ruby file which
uses watir using jruby.

If I use this command java -jar jruby.jar myrubyfile.rb , it gives the
following error


myrubyfile.rb:2:in `require’: No such file to load – watir (LoadError)
from myrubyfiles.rb:2


Even if I dont use watir it throws a similar error for the rest of the
ruby files used in the script ,like require ‘test/unit’ from the testing
framework

If I just run the script with the script name from the command prompt,
it gives the following error.


c:/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in
gem_original_re quire': no such file to load -- java (LoadError) from c:/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:inre
quire’
from myrubyfiles.rb:2


I know this is some sort of classpath error , however everything seems
to have been set, its still not working . What do you think is going
wrong??

Hello again Trupti…

A few things I mentioned in my JRuby email…hopefully this one reaches
you:

  • WATIR will not currently work in JRuby because we do not have a win32
    OLE
    library. This is planned, but nothing has been started yet.
  • You should look at the JRuby shell and bat scripts to see how to
    propertly
    invoke JRuby. Invoking the jar directly does not currently work, because
    there are system properties that must be passed to it.

I would recommend you set the env vars you have, JRUBY_HOME and
JAVA_HOME,
and then run either the shell or batch scripts on the script you want to
run, as in:

jruby myrubyfile.rb