« Back to Index

Example of importing Java libraries into JRuby

View original Gist on GitHub

import-libs.rb

puts "java.lang.System::out.println('Hello World')"
puts java.lang.System::out.println("Hello World") # => Hello World (notice Ruby and Java on one line is possible)

puts "java.lang.System.out.println('Hello World')"
puts java.lang.System.out.println("Hello World") # => Hello World (notice module/package syntax :: is replaceable with dot)

puts "java.lang.System::out.println 'Hello World'"
puts java.lang.System::out.println "Hello World" # => Can be Rubyistic with our code (notice no parenthesis required to execute method)

puts "java.lang.Math.methods"
print java.lang.Math.methods

puts "\n\njava_import java.lang.System"
puts "System.out.println('We've been imported')"
java_import java.lang.System
puts System.out.println("We've been imported")

puts "Certain Constants `java.lang.Math` can conflict with Ruby's"
puts "So rename them..."
puts 'java_import("java.lang.Math") { |package, name| "J#{name}" }'
puts "Note: you can also pass in an Array of packages"
java_import('java.lang.Math') { |package, name| "J#{name}" }
puts JMath::PI

puts "\nJMath.ancestors"
print JMath.ancestors

puts "\n\nLots of good stuff in the GitHub Wiki: Calling Java from JRuby https://github.com/jruby/jruby/wiki/CallingJavaFromJRuby"