JRuby often works out-of-the-box wherever MRI does. FlyMake is not one of those cases.
Flymake expects a particular format for error messages returned from the interpreter: MRI error messages. Charlie and Friends have decided the MRI error messages can be a bit opaque, and upgraded them to something a little more readable. Sadly, this breaks anything attempting to parse those messages.
Gaz and I decided to try switching things back to MRI so we could get our syntax errors highlighted in emacs. Lo and behold! Everything's happy again. As an added bonus, you don't need to wait for JRuby (and thus, a JVM) to start up every time FlyMake runs.
You can grab our changes with our latest emacs-starter-kit: https://github.com/drwti/emacs-starter-kit
If you're using Phil Hagelberg's emacs-starter-kit, make the appropriate change to starter-kit-ruby.el:
- (list "ruby" (list "-c" local-file))))+ (list "/usr/bin/ruby" (list "-c" local-file))))