# 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.
so Jruby comes to android platform thats wonderful :)
ReplyDeleteThat's amazing!
ReplyDeleteWow, that is so insanely cool!
ReplyDeleteAwesome!
ReplyDeletenewbie question:
ReplyDeletedoes 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?
ReplyDeleteuh, me likey!
ReplyDeleteYour posting tempted me to try the same for Rhino - and it worked! Thanks a lot!
ReplyDeleteCharlie, you rule.
ReplyDeleteI guess last night's RUM inspired you.
ReplyDeleteso ... where is Project Ruboto hosted so that we all may participate in the fun?
ReplyDeletemmm, I can't wait to play! Code?
ReplyDeleteThat's pretty cool. Now I want to get an Android phone.
ReplyDeleteyay!
ReplyDeletesource?
Wow. Now that the fastest turn around I have ever seen. Very cool Charlie. Sweet!
ReplyDeleteJust great...
ReplyDeleteHey, 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!
ReplyDeletelooks like MRI [can] run on android.
ReplyDeletehttp://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!
ReplyDeleteappears that it disables its just in time compilation http://www.infoq.com/news/2009/02/jruby12rc1-android-support
ReplyDeleteI 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:
ReplyDeletebtn = $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.