大家好, 假设我想制作一个仅使用程序集和 java 的系统,我的问题是,只要我包含所有 jvm 文件夹、类、jar 等。java 应该仍然有效运行吗? 我知道有些东西是专门编译平台的,但这就是为什么我问,是否可以使用程序集来复制所有 .exe 或 java 已包含到纯程序集/java 系统中的其他可执行文件?
最佳答案
如果您问是否可以用 Java 和汇编语言构建一个在“裸机”上运行的系统,答案是肯定的。当前有几个示例:
请注意,构建此类系统是一个多年、多人的项目,需要深入了解虚拟机内部结构、编译器、垃圾收集器、硬件架构、设备驱动程序编写等。
如果您询问其他问题,请说得更明确。
编辑:回答OP的后续问题:
- 使用 Java 和其他“exe”文件本身是不切实际的。它们需要一个成熟的操作系统作为支撑;例如Windows、Linux,等等。如果您有权访问源代码,您可以根据需要进行重写,以使它们在“裸机”上运行,但这将需要重大的架构更改,特别是如果您想用 Java 编写设备驱动程序等。 (另外,Sun的JRE的核心是用C++实现的……)。
- 您不能直接使用现有的 Java 类库 JAR 文件,因为它们包含大量特定于平台的代码。但是,您可以从现有的开源版本的 Java 类库(例如 OpenJDK 6.0 J2SE 库)构建您自己的 Java 类库 JAR。您可以通过提供自己的版本作为 native 库或(如 JNode 那样)作为 Java 类来处理特定于平台的代码。
关于java - 使用 Java 和汇编语言构建一个在 "bare metal"上运行的系统,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1303839/