【问题标题】:How to run Java programs by clicking on their icon on Windows?如何通过单击 Windows 上的图标来运行 Java 程序?
【发布时间】:2012-07-04 15:05:09
【问题描述】:

我编写了一个使用 Java swing 库的 Java 程序。现在我想通过双击 Windows 上的可执行文件来执行这个程序,就像任何其他带有 GUI 的程序一样。我怎么做?

【问题讨论】:

  • 我怀疑很多人不确定您的问题是“如何制作.exe?”“如何制作桌面我的应用程序的图标。?” 我在答案中添加了一个屏幕截图,表明 认为您在问什么(第二个选项)。请澄清问题。

标签: java deployment installation desktop-integration


【解决方案1】:

由于它是基于 Java 的并且有一个 GUI,显而易见的答案是使用 Java Web Start 部署它。

Java Web Start (JWS) 是 Oracle Corporation 技术,用于直接从网络或 Internet 链接启动富客户端(Swing、AWT、SWT)桌面应用程序。它为支持 Java 的平台提供“一键式”安装。

JWS 提供了许多吸引人的功能,包括但不限于初始屏幕、桌面集成、文件关联、自动更新(包括延迟下载和对更新的编程控制)、本地分区和其他资源按平台、架构或 Java 版本下载,运行时环境配置(最低 J2SE 版本、运行时选项、RAM 等),使用扩展轻松管理公共资源..

通过“桌面集成”读取支持平台上的桌面快捷方式和菜单项。

右侧的 2 个图标(JotPad 和 Star Zoom Animation)都是基于 Java 的应用程序。使用 Java Web Start 安装。由于 JotPad 是沙盒的,因此会提示用户是否创建快捷方式。该选择不适用于应用程序。具有更高的权限级别,因此使用允许应用程序的IntegrationService 安装/删除快捷方式和菜单项会更有意义。 (在提示用户之后)在运行时创建/删除它们。

【讨论】:

  • 啊!我忘记了这个选项... +1 ;)
  • 不幸的是,这不再是一个好的选择,Java Web Start 系统从 JDK 9 开始就被贬低了。
【解决方案2】:

有多种选择:

  1. 为您的项目创建一个可执行的 jar。要让这个 jar 工作,您必须将 javaw 作为默认应用程序才能打开它。
  2. 为您的项目创建一个 exe。
  3. 创建一个运行 jar 文件的 bat 文件。

看看这个:How can I convert my Java program to an .exe file?

【讨论】:

    【解决方案3】:

    你需要从java程序创建exe。

    Creating executable jar files

    1. 首先,确保您已安装 Java 1.2 或更高版本。此功能在以前的 Java 版本中不可用。
    2. 接下来,创建您的工作 Java 系统。通常,您会希望将其放入一个包中。对于这个例子,我创建了一个简单的 HelloWorld 应用程序,它打印出“Hello World”和第一个命令行参数,并将其放入包“psae”中。因此,HelloWorld 文件(HelloWorld.class、HelloWorld.java)位于目录 psae 中。在继续下一步之前,我测试了系统以确保它可以正常工作。
    3. 在psae所在的目录下,创建了一个名为“mainClass”的文件。该文件包含一行指定主类在 jar 文件中的位置。请注意,我使用包规范。这是单行: 主类:psae.HelloWorld 注意:确保在此行之后键入回车;一些windows系统需要它并且会报“Failed to load Main-Class manifest attribute”错误。
    4. 接下来,我使用 Java2 中的“jar”命令创建了一个名为 psae.jar 的 jar 文件。我使用“m”命令行参数来指定清单文件 mainClass,它将信息添加到 jar 文件中,说明主类的位置。这是jar命令: bertha:~ > jar cmf mainClass psae.jar psae
    5. 只是为了好玩,为了检查发生了什么,我打印了刚刚创建的 jar 文件的目录。这是命令及其结果: bertha:~ > jar tf psae.jar 元信息/ 元信息/清单.MF psae/ psae/HelloWorld.java psae/HelloWorld.class
    6. 成功创建 jar 文件后,我现在可以使用命令行参数对其调用 java2:

      bertha:~ > java -jar psae.jar Philip
      Hello World Philip
      

    【讨论】:

      【解决方案4】:

      虽然其他人提到了创建本机可执行文件等出色选择,但还有另一种有用的方法:创建快捷方式。

      • 右键单击桌面,展开“新建”选项,然后单击“快捷方式”。
      • 键入“javaw.exe”。点击下一步。
      • 随意命名。点击完成。
      • 您会注意到桌面上新创建的快捷方式。右键单击它并选择“属性”
      • 在“目标”文本字段中,附加“-jar path-to-your-jar.jar”,将“path-to-your-jar.jar”替换为 jar 的实际路径
      • 您现在还可以选择将图标更改为您想要的任何图标

      此快捷方式可以固定到任务栏并在任何地方使用(考虑到您提供了 JAR 的绝对路径)。

      【讨论】:

      • 嘿伙计不错的解决方案,但我有点麻烦,当我点击图标时,它显示消息“无法创建 java 虚拟机”
      • 这可能适用于常规 java 程序,但不适用于 GUI。我已经测试过了,它在WIN 7 中不起作用。
      • 在 Windows 7 和 Windows 10 下工作正常(“常规程序”或 GUI 没有区别,快捷方式无法判断)。
      【解决方案5】:

      【讨论】:

        【解决方案6】:

        您可以使用Launch4j 之类的内容。 也看看JSMooth

        希望对你有帮助

        【讨论】:

          【解决方案7】:

          有两种方法。两者都涉及将您的代码打包到 .jar 中。

          第一种方法是使用Launch4j 之类的工具构建一个实际的.exe 文件。它将要求您设置诸如告诉它要执行哪个类、要使用哪个图标、哪个 JRE 可以、要使用哪些 JRE 参数等内容。

          第二个选项是使 .jar 本身可执行。为此,您可以向 .jar 添加清单。清单是一个描述 jar 的小配置文件。其中一个属性是Main-Class,它定义了入口点。换句话说,它说明了哪个类具有在用户双击文件时应该调用的main 函数。 这是关于清单的基本教程:http://docs.oracle.com/javase/tutorial/deployment/jar/manifestindex.html

          第二个选项更容易上手,但用户会更频繁地知道如何处理 .exe。

          请注意,如果任一方法抱怨找不到类,请确保设置类路径清单属性以匹配您的项目。

          【讨论】:

          • “但用户会更频繁地知道如何处理 .exe。” 为什么用户会看到 EXE 或 Jar?使用 JWS,Jar 将变得“不可见”。
          【解决方案8】:

          如果你有一个可执行的 jar 文件,只需 shift 右键单击​​你的文件并将其设置为由 javaw 打开。另一种选择(如果您想将参数传递给您的应用程序)是创建一个 .bat 文件,您可以在其中通过 java 或 javaw 分离您的应用程序

          【讨论】:

            【解决方案9】:

            在 Eclipse 中右键单击“项目”并选择“导出”,然后选择“Java->可运行 Jar 文件”选择项目名称并完成。

            【讨论】:

              【解决方案10】:

              您似乎想要部署和运行 Swing 的独立应用程序。作为一名 Java 开发人员,您应该了解 jar 文件的强大功能。这些本身是可执行的{因此无需创建 .exe 文件:)}。

              以下代码将帮助您创建一个 jar 文件。

              在命令提示符下创建 jar 文件

              Start Command Prompt.
              Navigate to the folder that holds your class files:
              C:\>cd \mywork
              Set path to include JDK’s bin.  For example:
              C:\mywork> path c:\Program Files\Java\jdk1.5.0_09\bin;%path%
              Compile your class(es):
              C:\mywork> javac *.java
              Create a manifest file:
              C:\mywork> echo Main-Class: NameOfProject >manifest.txt
              Create a jar file:
              C:\mywork> jar cvfm NameOfProject.jar manifest.txt *.class
              Test your jar:
              C:\mywork> DanceStudio.jar
              

              创建 jar 后,只需双击它即可完成。

              【讨论】:

              • 它没有创建一个图标,只是一个 jar 文件夹,我可以使用我的 winrar 打开它
              【解决方案11】:

              您必须创建一个可执行的 jar 文件。为此,您只需在 jar 中添加一个 META-INF 文件夹,然后添加一个包含两行的 MANIFEST.MF 文本文件:

              Manifest-Version: 1.0
              Main-Class: your.package.YourMainClass
              

              【讨论】:

              • 您还必须将“Manifest-Version: 1.0”(不带引号)作为第一行;)
              【解决方案12】:

              以下是通过右键单击(换句话说,从 Windows 资源管理器上下文菜单)运行 Java 程序的方法。这个方便的技巧非常适合需要即时测试其简单程序的初学者。适用于 Win7 和 XP 平台。

              [ATTN:根据具体情况,您可能需要从 Java 文件顶部删除 package 指令。]

              第 1 步。 在您选择的文件夹(例如,C:\Program Files\Java 中创建一个批处理文件(例如,RWJ.bat) >.)

              第 2 步。 使用以下命令填写 RWJ.bat(它们可以像使用简单类一样正常工作,但您当然可以根据通过指定编译器/解释器开关、传递参数、添加 echo off、删除 pause 或其他方式来满足您的特殊需求):

              javac %1
              java %~n1
              pause
              

              第一个命令将您右键单击的文件的全名传递给 Java 编译器;第二个去除文件扩展名并仅向 JVM 提供类名。

              第 3 步。 将以下键添加到您的注册表:HKEY_CLASSES_ROOT\*\shell\Run With Java,然后创建其命令(默认值): C:\Program Files\Java\RWJ.bat %1

              第 4 步。 通过右键单击 Java 类并选择 Run with Java 选项来运行它。

              仅此而已。

              通过指向和单击运行 Java 程序的另一种方法是使用 AOT 编译器。例如,GCC 有一个名为 GCJ 的入口点,可用于将源代码编译为特定操作系统的字节码和标准可执行文件。

              最后,不是批处理文件可以运行 WSH 等。

              【讨论】:

                猜你喜欢
                • 2012-01-23
                • 2014-04-15
                • 1970-01-01
                • 2017-10-20
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2011-10-31
                • 2011-02-14
                相关资源
                最近更新 更多