【发布时间】:2012-12-13 21:16:01
【问题描述】:
正如您从标题中看到的那样,出于某种原因,我需要使在 Minix 上运行 .class 文件成为可能(不需要编译器)。那么有人可以指出我的任何方向,建议一些文献或提供一些建议吗?一般来说,你会怎么做?
直到现在我才找到OpenJDK(但这并不是我想要的)。我还阅读了 Tanenbaum 的“操作系统设计和实现”。它让我对 minix 内部结构有了很多了解。
【问题讨论】:
正如您从标题中看到的那样,出于某种原因,我需要使在 Minix 上运行 .class 文件成为可能(不需要编译器)。那么有人可以指出我的任何方向,建议一些文献或提供一些建议吗?一般来说,你会怎么做?
直到现在我才找到OpenJDK(但这并不是我想要的)。我还阅读了 Tanenbaum 的“操作系统设计和实现”。它让我对 minix 内部结构有了很多了解。
【问题讨论】:
如果您只想运行.class 文件而不关心性能,您可以创建一个字节码解释器,这可能比移植/创建一个完整的编译器更简单。您可以找到这些类文件的详细格式here,以及指定的VM 的行为here。
您还需要选择一个运行时——OpenJDK 和 GNU Classpath 可能是最好的选择——并通过在 C 中实现其 native 方法将其移植到 MINIX。native 方法通常与平台有关——特定的东西,例如对文件 I/O 的调用,因此无法在独立于平台的 Java 语言中实现。
this wiki page 上还有许多您可能会发现有用的其他链接和资源。
【讨论】:
javac 运行。然而,我们并没有全职做。
Jainja JVM(我是作者)可以在 Minix 3.2 上工作(未使用 3.3 测试)。它是一个带有 Java 5 标准库的解释器(即没有 JIT)。使用 X11 后端对 AWT/Swing 的支持有限。
【讨论】: