似乎只有少数JVM是Real-Time Specification for Java (RTSJ)的实现。 Sun / Oracle Java实时系统超过6000美元,IBM的实时WebSphere超过7000美元,因此许多Java开发人员可能永远不会有机会使用其中任何一个。 Oracle的JRockit似乎是一个免费的实时Java实现,具有可预测的,确定性的行为,虽然我不确定,因为他们的文档在营销语言上相当沉重。其他较小的实时JVM由于是由小型组织开发并具有较小的用户群而显得有风险。
首选哪些实时JVM?开发人员最常使用,信任和喜爱哪些?
答案 0 :(得分:29)
更新(2012年3月):Oracle似乎已经悄悄地拆解了他们的JavaRTS开发团队。
这个问题没有一个好的答案。肯定没有足够的临界质量来说当前最受欢迎的RT JVM。
美国国防系统我知道使用 JavaRTS, IBM的WebSphere RT和PERC。航空平台使用aicas JamaicaVM。到目前为止,大多数人并不太关心许可费用。他们担心更高的计划风险。我曾经使用过很多这样的程序,我发现这些产品质量很高,而且供应商提供了(有时非常特别的)支持。
许多供应商都专注于特定的客户或域,他们的设计和支持基础设施往往与此相符。如果您有特定的应用程序配置文件,也许我们可以为您提供更好的答案。
您引用的高许可成本反映了这些产品用户的高期望值以及相对较低的需求密度。开发人员社区(例如它)也更加零碎,因为具有实时或安全关键约束的系统通常具有更高的灵敏度(防御,航空,SCADA)或受保护的专有价值(汽车)或两者兼而有之。实时Java理论和实践的一个优秀论坛是年度JTRES conference,这是一个由学术界和精通技术的供应商组成的紧密团队。
答案 1 :(得分:8)
确实,实现 RTSJ 的虚拟机很少。 Oracle的JavaRT,IBM的实时WebSpere和aicas JamaicaVM,但来自Atego的PERC不是其中之一,甚至不是远程的。 PERC具有一些用于实时编程的专有扩展。 Oracle的JRocket也不是实时虚拟机。
PERC和JamaicaVM虽然都来自比IBM或Oracle更小的公司,但拥有大量的用户群。大多数开发人员对PERC和JamaicaVM不太熟悉,因为它们主要用于嵌入式应用程序,而不是桌面应用程序或服务器应用程序。 JamaicaVM正在被波音,西门子,蔡司和洛克希德马丁等大公司使用,并且已经上市超过十年。
如果您想尝试Java的实时规范,那么您可以下载JamaicaVM Personal Addition。它可以在网络上的任何Linux平台上使用。它可以从“http://www.aicas.com/jamaica-pe.html”免费获得。
JamaicaVM不仅支持RTSJ
,而且还有一个完全抢先的垃圾收集器。这意味着可以编写实时代码而无需使用范围和永久内存区域。 JamaicaVM还有一个静态或提前(AoT)编译器,因此JIT编译器不会禁止实时性能。仍然可以使用RealtimeThreads
,RawMemoryAccess
,AsyncEventHandlers
以及 RTSJ 的其他功能来促进实时编程。
答案 2 :(得分:3)
如果您想尝试使用RTSJ,JamaicaVM将免费提供非商业版本。它适用于x86上的linux。您可以在aicas的网页上找到对此的参考:www.aicas.com。
答案 3 :(得分:2)
尽管 Azul Zing 不是RTSJ实现(而是J2SE实现),但他们声称这个JVM能够运行实时应用程序,因为 C4 < / em>垃圾收集器。
更多关于 C4 :
答案 4 :(得分:0)
Aonix最常用的是RTSJ。他们拥有从CDC到Java SE级别的各种实时Java解决方案。