JRuby
Javaのsocketでclientを作りたくて、どんなんだっけと思ってJRubyでjava.net.Socketを使ってみた #!/usr/bin/env jruby require 'rubygems' require 'eventmachine' require 'ArgsParser' require 'java' import 'java.io.BufferedReader' import 'java.io.I…
JRubyで起動して、telnet localhost 5000で接続して 50,100 とか入力するとマウスが動く #!/usr/bin/env jruby ## telnet localhost 5000 and put "50,100" require 'java' import 'java.awt.Robot' require 'rubygems' require 'eventmachine' PORT = 5000 …
プログラムでマウスを指定した座標に移動させる方法 | OKWavejava.awt.Robot.mouseMove()を使うと動かせる #!/usr/bin/env jruby require 'java' import 'java.awt.Robot' r = Robot.new for i in 0...1024 do r.mouse_move(i, (i*0.6).to_i) sleep 0.05 end…
Macでjruby+ffi-rzmqを使う時 libc.dylibが無いというエラー /usr/libにLD_LIBRARY_PATHを通す zmq.dylibのアーキテクチャが違うというエラー zmqを64bitでインストールして、環境変数JAVA_OPTSに-d32を付けていると起こる このあたりハマる。 MacのJRubyの…
画面を撮るソフトを買うお金が無かったのでテキトウにjrubyで作った。音はいらないので無しで。 capture_screen_video.rb #!/usr/bin/env jruby require 'java' import 'java.awt.Robot' import 'java.awt.Rectangle' import 'java.awt.Color' import 'java.…
と思ったらcacaoあんまり更新されてないから微妙 http://en.wikipedia.org/wiki/CACAOubuntu10.04のaptで入れたjava1.6に、rvmで入れたjruby1.6で試す。こうしておく export 'JRUBY_OPTS=-X-C' export 'JAVA_OPTS=-cacao' -X-Cはありで、-cacaoか-serverのど…
いちどjrubyで画像として読み込んでwidthやheightが取れていれば破損していないとみなす delete_broken_imgs.rb #!/usr/bin/env jruby # -*- coding: utf-8 -*- require 'java' import 'java.lang.System' import 'javax.imageio.ImageIO' import 'java.awt.…
nailgunは一度起動したJVMを毎回使い回すことでJRubyの起動速度の遅さをなんとかするものらしい。 http://blog.headius.com/2009/05/jruby-nailgun-support-in-130.html JRUBY_OPTSに-X-Cがあるとnailgunが起動できないので一旦消してサーバー起動 export 'J…
前の記事の続き。java -helpに32bit起動オプションが書いてあった.zshrcとかに書いておく export 'JRUBY_OPTS=-X-C' export 'JAVA_OPTS=-d32' 試す time ruby -rubygems -ve 'require "active_support"; puts Time.now'jruby 1.5.3 (ruby 1.8.7 patchlevel 2…
MacでJRubyのアプリを開発していて、何度もJRubyを起動するので起動時間の遅さが気になった 結論 export 'JRUBY_OPTS=-X-C'Macbook しておくと、MacbookAirでは0.5秒ぐらい、MacbookProでは0.3秒ぐらい起動が速くなった あんまり嬉しくない普段使っているmac…
javaと同じように普通にActionListenerを継承したクラスを作ってJButtonに登録 #!/usr/bin/env jruby require 'rubygems' require 'java' import 'javax.swing.JFrame' import 'javax.swing.JPanel' import 'javax.swing.JLabel' import 'javax.swing.JButto…
1秒ごとにキャプチャしてJFrameに表示 #!/usr/bin/env jruby require 'java' import 'java.awt.Robot' import 'java.awt.Rectangle' import 'javax.swing.JFrame' f = JFrame.new f.title = 'interval capture' f.setSize(800, 600) f.visible = true r = Ro…
jruby -rubygems -ropen-uri -rjava -e 'import "javax.swing.JFrame";import "javax.swing.JTextPane";f=JFrame.new;f.title="サイバーパンク!";f.setSize(320,240);f.visible=true;textp=JTextPane.new;textp.text=open("http://shokai.org").read;f.cont…
jrubyc test.rbtest.classができる 実行するとエラーが出る class file for org.jruby.ast.executable.AbstractScript not found classpathにjruby.jarのあるディレクトリを追加しておくとよい export CLASSPATH=$HOME/lib/java/jai/lib:$HOME/lib/jruby/lib…
数百枚のVGA程度の解像度の画像にそれぞれ数十のアルファチャンネルあり画像をcompositeして書き出す処理なら、RMagickよりjavax.imageioをJRubyから使うのがいいんじゃないの javax.imageio、JAIともにJavaで書いてもJRubyから使っても速度差は無かった(と…
sudo apt-get install sun-java6-jdk sun-java6-bin aptのjrubyが古いのでバイナリを持ってくる wget http://jruby.org.s3.amazonaws.com/downloads/1.5.1/jruby-bin-1.5.1.tar.gz tar -zxvf jruby-bin-1.5.1.tar.gz mv jruby-1.5.1 ~/lib/jruby .zshrc path…
http://d.hatena.ne.jp/shokai/20100629/1277804347 の続き 前のコードではjavaのBufferdImageがRubyのオブジェクトに毎回変換されている気がしたので int配列でwidth,heightだけを返すJava classを作ってJRubyのスクリプトから呼ぶ事にした。 Javaで配列で…
画像読み込んでwidth, heightを出力対決 画像46枚でJRuby+javax.imageio #!/usr/bin/env jruby # -*- coding: utf-8 -*- require 'java' import 'java.lang.System' import 'javax.imageio.ImageIO' import 'java.awt.image.BufferedImage' start = Time.now…
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のp…
インストール http://jruby.org/download から最新releaseを取ってホームディレクトリに置く wget http://jruby.org.s3.amazonaws.com/downloads/1.5.1/jruby-bin-1.5.1.tar.gz tar -zxvf jruby-bin-1.5.1.tar.gz mv jruby-1.5.1 ~/lib/jruby ~/lib/jruby/bi…
http://d.hatena.ne.jp/shokai/20100629/1277804347 と同じ条件でimage_size.rb #!/usr/bin/env jruby # -*- coding: utf-8 -*- require 'java' import 'javax.media.jai.Interpolation' import 'javax.media.jai.JAI' import 'javax.media.jai.RenderedOp' …