gpt4 book ai didi

java - 在 gem5(或任何非 C 语言)中运行 Java 程序

转载 作者:太空宇宙 更新时间:2023-11-04 09:20:13 24 4
gpt4 key购买 nike

这可能是一个愚蠢的问题,但我最近正在学习 gem5,并且我能够使用该软件在系统调用模拟和完整系统模拟中模拟我的 C 程序。但是,每当我尝试在其中模拟任何 Java 程序时,都会收到此错误(系统调用模拟):

gem5 Simulator System.  http://gem5.org
gem5 is copyrighted software; use the --copyright option for details.

gem5 compiled Aug 26 2019 12:58:15
gem5 started Sep 5 2019 14:56:02
gem5 executing on (...), pid 6115
command line: build/X86/gem5.opt configs/learning_gem5/part1/test.py

Global frequency set at 1000000000000 ticks per second
warn: DRAM device capacity (8192 Mbytes) does not match the address range assigned (512 Mbytes)
fatal: fatal condition !obj_file occurred: Cannot load object file /home/taoliveira/Downloads/Gem5/gem5/configs/learning_gem5/part1/../../../my-progs/MergeSort/bin/x86/linux/MergeSort.
Memory Usage: 661468 KBytes

在本例中,我尝试了一个简单的合并排序 Java 程序。它在gem5模拟器之外正常编译和执行。在我的机器所在的 .py 文件中(这是 gem5 教程的 simple.py ),二进制文件是指向 .jar 文件的路径。我听说 .jar 在 gem5 中无法正常工作,但我不知道该用什么来代替。那么,我需要做什么才能在 gem5 模拟器中运行非 C 程序呢?在这种情况下,我必须做什么才能运行java程序?

我到处寻找答案,但没有找到。有人可以帮我吗?提前致谢。

我使用的是 Ubuntu 18.04 和 Java 1.8.0_201。

编辑:我尝试将 Java 代码转换为 native 机器代码(x86)并使用 GraalVM 完成,然后将其传递给运行脚本,就像我对 C 程序所做的那样。但是,它在加载脚本时向我显示了一个新错误:

loading script...
Fatal error: Failed to create a new Isolate. (code 6)

以前从未见过它,并且在谷歌搜索时没有找到任何相关信息。

最佳答案

执行 Java 程序的方式与执行 C 程序完全相同:

  • Gem5 无法理解 C,因此如果您想执行 C 程序,您首先需要将其编译为 Gem5 能够理解的语言,或者需要在以 Gem5 能够理解的语言编写的解释器中解释它。
  • Gem5 无法理解 Java,因此如果您想执行 Java 程序,您首先需要将其编译为 Gem5 能够理解的语言,或者需要在以 Gem5 能够理解的语言编写的解释器中解释它。

以下是我能想到的几种可能性:

  • 使用 native 代码编译器将 Java 编译为 Alpha、ARM、Sparc 或 x86 native 代码,
  • 使用用 Alpha、ARM、Sparc 或 x86 native 代码编写(或编译为)的 Java 解释器来解释该 Java 代码,
  • 使用 JVM 编译器将 Java 编译为 JVM 字节码,然后使用用 Alpha、ARM、Sparc 或 x86 native 代码编写(或编译为)的 JVM 来解释该 JVM 字节码,或者
  • 使用 JVM 编译器将 Java 编译为 JVM 字节码,然后使用 native 代码编译器将 JVM 字节码编译为 Alpha、ARM、Sparc 或 x86 native 机器代码。

当然,可以链接和/或混合任意数量的上述内容。

关于java - 在 gem5(或任何非 C 语言)中运行 Java 程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58399259/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com