当前位置: 首页 > 知识库问答 >
问题:

java反汇编代码可以在没有操作系统的情况下运行吗?

汝臻
2023-03-14

我使用javap将一个java类文件反汇编成程序集。那么,我可以在没有操作系统的情况下运行javap命令生成的汇编代码吗?

共有2个答案

桂宏旷
2023-03-14

不,你不能。

>

  • javap命令输出反汇编字节码,而不是机器指令。

    不能运行反汇编代码。反汇编代码只是文本。。需要组装成。。。某物在执行之前。。。因为某种原因。

    字节码不能由常规硬件执行。在常规硬件(如Intel、M1、SPARC等)上,它们需要由常规JVM进行解释/JIT编译,或者使用AOT编译器编译为本机代码。

    所有主流JVM都在一个操作系统上运行。即使是像JNode(它确实在裸x86硬件上启动和运行)这样的异常值,也有很多嵌入其中的操作系统功能

    如果将字节码编译为本机代码可执行文件,则仍然需要一个操作系统来运行可执行文件。就像任何其他本机代码可执行文件一样。

    1——从理论上讲,可以实现将字节码作为其本机指令集执行的硬件,但目前市面上还没有这种硬件。曾经有一个Sun项目来构建一个本地Java平台,但它在很久以前就被关闭了。还有其他一些,但没有任何东西获得吸引力。看见https://en.wikipedia.org/wiki/Java_processor寻找一些线索

  • 韦嘉颖
    2023-03-14

    否:)

    • javap不生成代码。它可以打印字节码和字段方法,但不是反编译器
    • 您可以在JVM*)(在操作系统上运行)中运行字节码,但不需要javap
    • 您还可以将class/jar转换为本机映像,并在没有JVM的情况下运行,但仍然需要一个操作系统。看这里

    *)严格来说,还有一些硬件可以直接运行字节码:https://en.wikipedia.org/wiki/Java_processor

     类似资料:
    • 我们是否需要internet连接才能从AWS的实例中使用AWS Java SDK? 从我最初的调查发现,我看到要从Amazon的这个实例运行基于AWS Java SDK的Java程序,该实例需要具有internet连接。 运行AWS Java SDK附带的示例程序AwsConsoleApp,我看到以下错误: [javac]/home/ubuntu/aws-java-sdk-1.8.9.1/samp

    • 问题内容: Oracle的可用下载列表上似乎没有32位下载程序包。 更新 可以在这里下载: 问题答案: 尽管Oracle的糟糕,未加密的 下载页面 似乎缺少JDK9的32位二进制文​​件,但是,如果(单击“接受许可协议”后)复制64位二进制文​​件的URL并更改 为 ,它将为您提供32 位二进制文​​件位二进制文​​件。 更新:现在不见了。怪异的!Oracle在玩什么?他们致力于修复Java 9的

    • 文档说这个库运行在GPU上。如果我功能强大的笔记本电脑没有GPU,我还能运行Deeplearning4J吗?

    • 我是UI自动测试的新手,当只有.apk文件时,我无法弄清楚如何设置UI测试。 在线教程和其他示例没有显示如何使用我的3P. apk文件。我知道在Appium中,只需将文件/目录和名称添加到所需的功能,服务器就会安装它。

    • 问题内容: 背景: 我正在尝试使用弹性堆栈 (Elastic,Logstash和Kibana) ,但是我没有钱可支付。我不介意使用封闭源代码的部件,只要它们是免费的即可。在这方面,我试图了解弹性许可的工作原理。 我们打开X-Pack似乎建议在Elastic 6.3之后包含X-Pack代码 (尽管具有不同的许可证) 。我也了解X-Pack的某些部分是免费的,而其他部分则不是免费的。这有点令人困惑。

    • null 我看到过其他答案,提到了一个名为UCANAccess的Access数据库的JDBC驱动程序。如何设置Java项目以使用这种方法? (建议从Java使用Access数据库的更好方法的答案也是最受欢迎的。)