【问题标题】:When to use a Java GUI [duplicate]何时使用 Java GUI [重复]
【发布时间】:2012-11-12 06:31:14
【问题描述】:

可能重复:
How can I convert my Java program to an .exe file?
Compiling a java program into an exe

我相信这是一个简单的问题,虽然我找不到快速的答案。

我一直在学习有关 GUI 制作(以及真正的 Java 编码)的 Java 课程,该课程在编译时会创建一个 .java 文件。该 .java 文件可以使用某种 IDE 打开,但不能像 .exe 文件那样打开。

这让我想到了我的问题。您何时/何地实际使用 Java GUI?我没有预见到我会将 .java 文件传递​​给我的朋友或同事以使用我制作的工具。它们是否应该最适合在线应用程序?

【问题讨论】:

  • 可以在任何支持 Java 并加载了 JRE 的平台上“打开”Java GUI。例如,如果您创建了一个 JAR 文件并正确设置了 Windows,您可以像任何“exe”程序一样双击运行您的 GUI。我几乎在任何地方都运行我自己创建的 Java GUI 实用程序。
  • 我投票关闭只是因为虽然 OP 以一种略有不同的方式提出了这个问题,但这里的主要问题是如何运行本机代码和虚拟机代码之间的区别。

标签: java user-interface file-type


【解决方案1】:

开发 Java GUI(图形用户界面)或 Java CL(命令行)程序并不重要,因为最终您的软件应该像 *.exe 一样运行,只要用户安装“Java 虚拟机”。

【讨论】:

    【解决方案2】:

    .java 文件是源代码,旨在供程序员以适合他们的格式编写代码,以定义程序的行为。

    源代码被编译成可以执行(运行)的 .class 文件,尽管它们通常被打包成 JAR 文件(它们只是 .class 文件的集合)。

    这些是可执行的,可以在人与人之间传递以共享程序。

    GUI 无关紧要。您可以创建或不创建 GUI,但该功能仍将存在于代码中并且可以执行。 GUI 允许您查看程序并与之交互,而没有 GUI,如果需要交互,则必须使用命令行。

    【讨论】:

    • 谢谢。这实际上正是我所需要的。我发现 .jar 文件隐藏在其他项目文件中,它确实像我想要的那样运行。我试图像菜鸟一样“运行” .java 文件,它只是在打开代码(在共享工具方面毫无用处)
    【解决方案3】:

    编译 Java 时,它会创建 .class 文件,而不是 .java 文件。 .java 文件是源代码; .class 文件是编译的结果。

    .java 文件可以通过 IDE 打开,但将它们作为.exe 文件打开是没有意义的,因为.java 文件是源代码。

    要运行 Java 应用程序,您必须运行特定于您的操作系统的 Java 虚拟机。您提供 .class 文件作为输入,然后 JVM 运行它。

    .class 文件与 Windows .exe 文件是 Java 等效的,因为它们是“可执行的”。但是,虽然.exe 文件可以由 Windows 直接执行,但.class 文件不能由任何操作系统直接执行,而是由特定于操作系统的 JVM 执行。

    Java 在这方面的“优势”在于,相同的.class 文件(可执行文件)可以在任何安装了 JVM 的操作系统上运行。

    【讨论】:

      【解决方案4】:

      您的 .java 文件包含您的 Java 代码,然后您将其编译为类文件。这可以由你的朋友执行。

      在大多数情况下,您会将应用与其资源捆绑在一个可执行的 jar 文件中。如果配置正确,操作系统只需双击即可运行 Java 应用程序。另一种解决方案是使用 Java webstart 来分发您的 GUI 应用程序,但这本质上是一回事。必须正确配置 Java 和与 jnlp 文件的文件关联。

      最简单的方法可能是使用像 launch4j 这样的 exe 包装器来创建一个加载 JVM 并运行 Java 应用程序的 exe 文件。这些包装器甚至可以创建带有捆绑 jvm 的分发包,以确保您的应用程序能够在用户没有安装 Java 的情况下运行。

      希望对你有帮助。

      【讨论】:

        猜你喜欢
        • 2014-08-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-08-13
        • 2021-01-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多