image

  • フォト Amazonギフト券
    ※この時計の時刻は、閲覧しているパソコンのものであり、必ずしも正確な時間とは限りません

検索

最近のトラックバック

無料ブログはココログ

« 2007年5月13日 | トップページ | 2007年5月15日 »

2007年5月14日

2007-05-14

jruby から java メソッドを呼び出す

jruby から java メソッドを呼び出す例を試してみた。無事 動作する。
ここでは、
  標準クラスのメソッド呼び出し、
  自作の java クラスのメソッド呼び出し、
  Exception の扱い
を試している。

kato$ cat Sample.java
public class Sample {

    public void sub() {
        System.out.println("sub");
    }
}


kato$ cat java00.rb
# See http://jruby.codehaus.org/The+JRuby+Tutorial+Part+1+-+Getting+Started

require 'java'
include_class 'java.util.TreeSet'

# java の TreeSet を使う
set = TreeSet.new
set.add "foo"
set.add "Bar"
set.add "baz"

set.each do |v|
  puts "value: #{v}"
end

# String は ruby が利用済みなので、
# java.lang.String を JString として使えるようにする。
include_class('java.lang.String') {|package,name| "J#{name}" }

s = JString.new "a"
puts "s.class: #{s.class}"

rs = String.new
puts "rs.class: #{rs.class}"

# java の例外を扱う
begin
  s1 = JString.new "0123456789"
  p s1.substring(2)
#  p s1.substring(20)
rescue RuntimeError => e
  puts "Java or Ruby exception: #{e}"
  raise
end

include_class 'Sample'

sample = Sample.new
sample.sub

#--- End of File ---

jruby 1.0.0 で druby は動作しないのか?

- http://www2a.biglobe.ne.jp/%7Eseki/ruby/d203.html
> > 3 Hello, dRuby.
にある、ちいさな druby のサンプルを jruby で動作させてみたが、動作しない。

kato$ jruby puts00.rb druby://localhost:12345
druby://localhost:12345
puts00.rb:[16,16]:[204,236]: wrong number of arguments(0 for 1) (ArgumentError)
kato$

drury は jruby ではまだ動作しないのかなぁ。

サーバーは ruby で動作させ、client を jruby で動作させてみたけど、これも駄目だった。

kato$ jirb
irb(main):001:0> require 'drb/drb'
=> true
irb(main):002:0> there = DRbObject.new_with_uri('druby://localhost:12345')
=> #<DRb::DRbObject:0xe7ed2d @uri="druby://localhost:12345", @ref=nil>
irb(main):003:0> there.puts('Hello, World.')
DRb::DRbConnError: druby://localhost:12345 - #<Errno::ECONNREFUSED: Connection refused>
        from /Users/kato/work/www/jruby-1.0.0RC1/lib/ruby/1.8/drb/drb.rb:736:in `open'
        from /Users/kato/work/www/jruby-1.0.0RC1/lib/ruby/1.8/drb/drb.rb:1189:in `each'
        from /Users/kato/work/www/jruby-1.0.0RC1/lib/ruby/1.8/drb/drb.rb:738:in `open'
        from /Users/kato/work/www/jruby-1.0.0RC1/lib/ruby/1.8/drb/drb.rb:1189:in `initialize'
        from /Users/kato/work/www/jruby-1.0.0RC1/lib/ruby/1.8/drb/drb.rb:1169:in `new'
        from /Users/kato/work/www/jruby-1.0.0RC1/lib/ruby/1.8/drb/drb.rb:1169:in `open'
        from /Users/kato/work/www/jruby-1.0.0RC1/lib/ruby/1.8/drb/drb.rb:1087:in `method_missing'
        from (irb):1:in `with_friend'
        from /Users/kato/work/www/jruby-1.0.0RC1/lib/ruby/1.8/drb/drb.rb:1089:in `method_missing'
        from (irb):1:in `binding'
irb(main):004:0>

« 2007年5月13日 | トップページ | 2007年5月15日 »

mokuji

2013年12月
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31        

google

  • twitter
  • __
  • _
    Googleボットチェッカー

合わせて読む

  • 合わせて読む
    フィードメーター - katoy: cocolog あわせて読みたい

リンク