【问题标题】:Java File : Life Cycle of Java Extension [duplicate]Java文件:Java扩展的生命周期[重复]
【发布时间】:2020-09-05 14:20:38
【问题描述】:

在 C++ 中,文件生成为 .cpp,编译后变为 .obj,最后链接后变为 .exe。 Java 文件的最后阶段是什么?它最初是.java,在编译时它变成.class。接下来是什么?在它的最后阶段会发生什么?会变成.exe文件吗?

【问题讨论】:

  • 可能(但不常见)。通常它要么保留一个类,要么打包在一个 jar 中。
  • "它会变成 .exe 文件吗?" - 不会。或者至少不会正常。 .class 文件由 JVM 加载。 JVM 附带了一个即时编译器,可以将字节码编译成机器码,但这些代码通常不会出现在磁盘上。 GraalVM 能够将.jar 文件(基本上是包含.class-files 的档案)编译为可执行文件。
  • 类文件主要是最后阶段,因为它包含 java 字节码。类文件中的 Java 字节码由 Java 虚拟机解释,它还负责查找/解析类文件之间的链接(例如,类文件 A 引用类文件 B)以找到要执行的 Java 字节码。
  • 任何初学者 Java 书籍都包含您问题的答案,例如 Head First Java。还有一些在线资源可以回答您的问题,例如 Oracle 的 Java 教程的 Getting Started 线索。在发布您的问题之前,您是否进行了任何研究?请参考How much research effort is expected of Stack Overflow users?

标签: java


【解决方案1】:

在 C++ 中文件不一定会变成 .exe 文件。此类文件不包括 Windows 环境。至于 Java,.class 文件已经可以由 JVM 执行,因此通常不需要将它们转换为其他任何东西。通常它们保留为 .class 或打包成各种可能的格式,例如 .jar 文件、.war 或 .ear 文件。

【讨论】:

    【解决方案2】:

    这取决于你想做什么。

    通常,在 .class 文件之后,您将有一个 .jar 文件(有时可能是 .war)。您可以使用下一个命令运行它。 java -jar file.jar/warFile.war params

    之后,您可以使用不同的程序来创建带有 .jar 文件的 .exe 文件和带有运行命令的脚本文件。有时在 .exe 中 JRE 也可能在里面。

    【讨论】:

    • @FedericoklezCulloca 在 Spring boot 中,您可以使用 java 命令运行 war 文件,其中没有任何问题。
    猜你喜欢
    • 2015-09-24
    • 2017-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多