Real-time Java combines ease of programming in the Java language with the performance required by applications that must conform to real-time constraints. Extensions to the Java language provide features for real-time environments that are lacking in the traditional Java runtime environment. This article, the first in a three-part series, describes some of these features and explains how you can apply them to enable real-time performance in your own applications.
While the RTSJ API certainly seems useful for things like audio processing, are there any good free (as in speech or beer) JVM’s available that actually support these extensions?
Sun has an implementation at http://java.sun.com/javase/technologies/realtime/rts/ , but afaics they only provide evaluation and ‘academic’ licenses for free.
None that I could find.
They seem to be pitching this for the high-end i.e. banking/trading applications running dedicated realtime platforms like QNX.
I know of three implementations of the RTSJ.
The Sun and the IBM (Websphere) JREs are both commercial.
There is however the Reference-Implementation from Timesys (http://www.timesys.com/java/) that can be used freely for research* purposes. The drawback here is that it only supports Byte Code up to Version 1.3, which means (among other things) no generics, no enumerations and an old API.
* as in the Licence Agreement:
” “Research Purposes” means research, evaluation, development, educational or personal and individual use, excluding use or distribution for direct or indirect commercial (including strategic) gain or advantage.”
Edited 2009-09-07 12:13 UTC
Right – Sun also has an ‘academic’ license, but its terms are rather more restrictive: http://java.sun.com/javase/technologies/realtime/rts/eduqualificati…
Oracle also seems to have a a free-as-in-beer ‘real time’ JRockit JVM, but afaics this is just a JVM with thing like a more RT-friendly garbage collection mechanism, and does not contain an implementation of RTSJ.