# cat test.rb
require 'java'
import java.lang.System
class Ruboto
def greet(who)
puts "Hello, #{who}!"
end
end
name = System.get_property('java.runtime.name')
Ruboto.new.greet(name)
# dalvikvm -classpath ruboto.jar org.jruby.Main -X-C test.rb
Hello, Android Runtime!
Portions of this page are modifications based on work created and shared by Google and used according to terms described in the Creative Commons 2.5 Attribution License.
21 comments:
so Jruby comes to android platform thats wonderful :)
That's amazing!
Wow, that is so insanely cool!
Awesome!
newbie question:
does this mean that jruby can be used to develop applications on the android plattform?
Last week I fought with CRuby to cross-compile miniruby for Android. Damn, should have waited a week :-) Thank you for the effort. When/where do we get more details?
uh, me likey!
Your posting tempted me to try the same for Rhino - and it worked! Thanks a lot!
Charlie, you rule.
I guess last night's RUM inspired you.
so ... where is Project Ruboto hosted so that we all may participate in the fun?
mmm, I can't wait to play! Code?
That's pretty cool. Now I want to get an Android phone.
yay!
source?
Wow. Now that the fastest turn around I have ever seen. Very cool Charlie. Sweet!
Just great...
Hey, if you need any particular help with Android support in JRuby, drop me a line. I was planning on doing Android/JRuby experiments in a couple of months, but if you're starting sooner, that's cool too!
looks like MRI [can] run on android.
http://otype.net/2009/01/static-ruby-miniruby-187-on-android-dev-phone-1/
?
-=r
I thought that JRuby does quite a bit of dynamic Java byte code generation, and that Dalvik doesn't support dynamic byte code generation. Am I wrong on one of those two points? Would you mind giving a brief description of how you've gotten a dynamic language working on Dalvik? Thanks, and exciting work!
appears that it disables its just in time compilation http://www.infoq.com/news/2009/02/jruby12rc1-android-support
I just succeeded in running jruby code from an 'Activity'. the android SDK generates a R class with static inner classes that have lower case names and again there own static fields eg in java R.layout.main (layout being the static class). this seems to create problems. Also code like this:
btn = $activity.find_view_by_id(0x7f050000)
txt = $activity.find_view_by_id(0x7f050001)
class RunScriptListener
include View::OnClickListener
def onClick(view)
src = txt.text.to_s
eval(src)
end
end
btn.on_click_listener = RunScriptListener.new
seems to create the same problem with classloading: Exception: java.lang.UnsupportedOperationException: can't load this type of class file.
But of course you can't pass arguments to an activity for the davlikvm.
Post a Comment