我想知道 JRE6 和 rtsj 的 JVM 之间的互操作性如何。看起来我必须只使用它们的实现(因为代码将使用它们的 JVM 进行解释),所以我不能使用 Java 6 提供的许多功能。它能支持 GUI 吗?(例如,修改工业过程的参数)。我可能错了,希望得到您的反馈。此外,似乎有更多的 Java 实时实现。你用过哪一个,最喜欢哪一个?
请看我的另一个回答,了解更多RTSJ商业级实现的示例。最新版本(2.1)与JDK1.5兼容,因此您应该有可用的Swing / AWT。虽然在同一JVM中编写GUI以执行实时进程是可行的,但这不是一个好的架构决策。更可能的是,您希望将实时行为隔离在一个JVM中,并提供可分离的接口,该接口在单独的内存空间中实现GUI。原则上,您应该能够编写RTSJ代码,使其在非实时线程(我已经做了很多这样的工作)运行在同一JVM中,但要正确同步可能会很困难。
为了提供实时行为,JVM需要非常具体的工程化。这包括在操作系统级别进行集成,以获取主机操作系统的实时调度功能。例如,Sun实时JVM与J2SE5兼容。http://java.sun.com/javase/technologies/realtime/faq.jsp#4 通常,任何提供特定功能(如安全性或实时行为)的系统(操作系统、JVM等)的专门实例都倾向于落后于通用版本。至于在实时环境中使用GUI,您应该研究使用类似JMX、RMI或Web服务(最轻量级的)的2层客户端-服务器控制实时过程。直接在实时代码中使用GUI似乎会引入许多潜在问题,因为它试图在实时约束条件下执行。