JRubyでjavaのclassを呼び出す
javax.imageioで使える画像フォーマット - 橋本詳解をJRubyで書いてみる
test.rb
#!/usr/bin/env jruby # -*- coding: utf-8 -*- puts 'jruby start' require 'java' import 'java.lang.System' import 'javax.imageio.ImageIO' System.out.println("javaのprintln"); puts '---read formats---' ImageIO.readerFormatNames.each{|n| puts n } puts '---write formats---' ImageIO.writer_format_names.map{|n| n.downcase}.uniq.each{|n| puts n }
jruby test.rb
jruby start javaのprintln ---read formats--- BMP bmp jpeg wbmp gif png JPG jpg WBMP JPEG ---write formats--- bmp jpeg wbmp png jpg
sugeee!!!
javaのgetter/setterはrubyから使う時はget/setなしの関数名でアクセスできるようになってた(get/setありでもできる)
javaの関数名のキャメルケースで単語を区切るのも、アンダースコアでもアクセスできる。
javax.imageio.ImageIO.getReaderFormatsNames()はString配列を返すが、そのままRubyの配列になるのでmapやuniqやeachで処理できた。