如何创建包装为可执行文件的 Java 应用程序

How do I create a Java application wrapped as an executable

我想制作一个 Java 可执行应用程序。就像双击文件执行操作一样。我不想加载所有 classes,编译程序并执行 .class 文件。而只是一个应用程序;我需要什么。我不介意从一个基本程序开始,双击它会启动一些事件。

我认为执行此操作的行业标准方法(假设您不要求生成可执行的 .jar 文件)是使用 Launch4J .

或者,您可以生成一个可执行的 .jar 文件,但它依赖于您系统上的 mime 类型文件关联才能双击。我认为,大多数时候,这就是开发人员这样做的方式,因为它可以跨平台工作,而不是双击(当正确关联 mime 类型时),他们从 shell.

由于 Java Applet,您不能简单地创建 exe 文件。 Java个文件的后缀是jar,所以可以创建appliacation.jar :)

这取决于您在哪里开发应用程序。如果你像我一样使用 NetBeans,你只需点击锤子按钮(构建项目),然后你就可以在文件夹 dist[= 中找到你的 jar 文件21=].

Eclipse 或其他 IDE 工作方式类似。

既然可以制作jar文件,为什么还要制作exe文件呢?在 Eclipse 中,您可以将项目导出为 Runnable JAR 文件,我认为这已经足够了。

在 netbeans 中,如其他答案中所述,您可以对其进行锤击构建并在 dist 文件夹中找到 jar。

或者,如果您只是不喜欢那个 .jar 扩展,您可以使用 iexpress 将 jar 打包到 "installer" 中,隐藏所有对话框,并将安装命令设置为 java -jar program.jar。我不太确定你是否可以打包多个 类 和 运行 那个带有 main() 功能的那个。

假设您使用的是 Eclipse,在 Windows 环境中,我通常会继续编译并准确导出我的项目。

它是否具有“.jar”扩展名并不重要,您可以"run"它只是提示这样的内容:

java -jar "path to my jar"

我通常创建一个简单的 batch.txt 文件,并将该行放在里面。 然后我用“.bat”替换文件扩展名“.txt”,这样你就可以实现"double-clicked"风格的开始。

否则,您可以编译为"Runnable Jar",并且可以由"double-clicked" 风格的应用程序运行;但编译并确保在清单中指向正确的主类。

答案非常宽泛,但你的问题不够具体。

示例:

1) 创建简单的 Java 项目

2) 放一个新的 Class 并命名为 "MainRunClass" 包 com.runnable.testthis 具体实现:

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;

public class MainRunClass {


    public static void main(final String[] args) {
        final JFrame parent = new JFrame();
        JButton button = new JButton();

        button.setText("Click me to show dialog!");
        parent.add(button);
        parent.pack();
        parent.setVisible(true);

        button.addActionListener(new java.awt.event.ActionListener() {
            @Override
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                String name = JOptionPane.showInputDialog(parent,
                        "What is your name?", null);
            }
        });
    } 
}

3) 导出为 "Runnable Jar"

4) 在提示时给它来自组合列表的 "Launch Configuration put "Main Class\Project,以及最终导出的路径。你可以把 "Export required jars and classes" 留在同一个罐子里。

5) 双击它,或者按照说明做一个批处理文件!