Java 虚拟机
Java™ 虚拟机是一种运行时环境,您可以将其添加到网络浏览器或任何操作系统中,例如 IBM i。 Java 虚拟机运行 Java 编译器生成的指令。 它由字节码解释器和运行时组成,允许 Java 类文件在任何平台上运行,而无论它们最初是在哪个平台上开发的。
作为 Java 运行时一部分的类装入器和安全管理器将来自另一个平台的代码隔离开来。 它们还可以限制允许装入的每个类访问哪些系统资源。
注: Java 应用程序不受限制; 仅限制 applet。 应用程序可以自由访问系统资源并使用本机方法。 大多数 IBM® Developer Kit for Java 程序都是应用程序。
除了装入和运行字节码外, Java 虚拟机还包含用于管理内存的垃圾收集器。 Java 垃圾回收 在装入和解释字节码的同时运行。
Java 运行时环境
只要在 IBM i 命令行上输入 "运行 Java" (RUNJVA) 命令或 JAVA 命令, Java 运行时环境就会启动。 由于 Java 环境是多线程的,因此需要在支持线程的作业 (例如批处理立即 (BCI) 作业) 中运行 Java 虚拟机。 如下图所示,在 Java 虚拟机启动后,可能会在运行垃圾收集器的作业中启动其他线程。
图 1: 使用 RUNJVA 或 JAVA CL 命令时的典型 Java 环境

还可以使用 Qshell 解释器中的 java 命令来启动 Java 运行时环境。 在此环境中, Qshell 解释器正在与交互式作业关联的 BCI 作业中运行。 Java 运行时环境在运行 Qshell 解释器的作业中启动。
图 2: 在 Qshell 中使用 java 命令时的 Java 环境

当 Java 运行时环境从交互式作业启动时,将显示 "Java Shell 显示"。 此屏幕提供了一个输入行,用于在 System.in 流中输入数据,以及显示写入 System.out 流和 System.err 流的数据。
Java 解释器
Java 解释器是 Java 虚拟机的一部分,用于解释特定硬件平台的 Java 类文件。 Java 解释器对每个字节码进行解码并执行相应的操作。