如何创建可执行的Java程序?

如何创建可执行的Java程序?,java,jar,executable,jcreator,Java,Jar,Executable,Jcreator,我已经在JCreator中编写了一个Java程序,一切都完成了,但我想从中创建一个可执行文件,即我不想通过加载Java类并编译然后执行来运行该程序,而是将其作为一个独立的可执行文件 最快的方法是什么?编写脚本并使其可执行。脚本应该与您通常在命令行中使用的脚本类似: java YourClass 这假设您已经编译了.java文件,并且java可以找到您的.class文件。如果java找不到.class文件,可能需要使用-classpath选项或设置classpath环境变量。在命令行上,导航到要

我已经在JCreator中编写了一个Java程序,一切都完成了,但我想从中创建一个可执行文件,即我不想通过加载Java类并编译然后执行来运行该程序,而是将其作为一个独立的可执行文件


最快的方法是什么?

编写脚本并使其可执行。脚本应该与您通常在命令行中使用的脚本类似:

java YourClass

这假设您已经编译了.java文件,并且java可以找到您的.class文件。如果java找不到.class文件,可能需要使用-classpath选项或设置classpath环境变量。在命令行上,导航到要使其可执行的java文件的根目录

使用此命令:

jar -cvf [name of jar file] [name of directory with Java files]
java -jar [name of jar file]
这将在jar归档文件中创建一个名为META-INF的目录。在此META-INF中有一个名为MANIFEST.MF的文件,请在文本编辑器中打开此文件并添加以下行:

Main-Class: [fully qualified name of your main class]
然后使用以下命令:

jar -cvf [name of jar file] [name of directory with Java files]
java -jar [name of jar file]
您的程序将运行:)

您可以使用它将Java程序转换为本机代码。

有时,它们甚至汇编成一个。

看一看

我不太清楚你的意思

但我想你指的是两件事中的任何一件

  • 您想创建一个可执行的.jar文件
Eclipse可以非常轻松地完成这项工作:文件-->导出并创建一个jar,然后选择适当的主类,它将为您生成.jar。在windows中,您可能必须将.jar与java运行时相关联。按住shift键,右键单击“打开方式”,浏览到jvm并将其与javaw.exe关联

  • 创建一个实际的.exe文件,然后需要使用一个额外的库,如

或者将创建一个带有漂亮图标的本机.exe存根,该图标将基本上引导您的应用程序。他们甚至会找出您的客户是否尚未安装JVM,并提示您安装一个。

正如前面所建议的,您可以查看launch4j为JAR文件创建可执行文件。此外,还有一种叫做“JExePack”的东西,它可以在jar文件周围放置一个.exe包装,这样您就可以重新分发它(注意:客户端无论如何都需要一个JRE来在他的pc上运行该程序) 用GCJ创建的EXE不会有这种依赖关系,但这个过程要复杂一些。

看看。这只是windows操作系统,但这是因为unix的可执行脚本(对用户来说)看起来像垃圾桶。您还可以轻松地修改WinRun4J以在unix上编译

它确实需要一个配置文件,但同样,使用硬编码选项重新编译它,它的工作方式类似于无配置的exe。

您可以使用SDK附带的,并创建程序的可执行版本

就是这样做的

我从命令提示符发布结果是因为这样更容易,但在使用JCreator时也应该如此

首先创建您的程序:

$cat HelloWorldSwing.java
    package start;

    import javax.swing.*;

    public class HelloWorldSwing {
        public static void main(String[] args) {
            //Create and set up the window.
            JFrame frame = new JFrame("HelloWorldSwing");
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

            JLabel label = new JLabel("Hello World");
            frame.add(label);

            //Display the window.
            frame.pack();
            frame.setVisible(true);
        }
    }
    class Dummy {
        // just to have another thing to pack in the jar
    }
非常简单,只显示一个带有“Hello World”的窗口

然后编译它:

$javac -d . HelloWorldSwing.java
在“开始”文件夹Dummy.class和HelloWorldSwing.class中创建了两个文件

下一步,创建jar文件。每个jar文件都有一个清单文件,其中包含与可执行文件相关的属性

这是我清单文件的内容

$cat manifest.mf
Main-class: start.HelloWorldSwing
只需描述主类是什么(使用publicstaticvoidmain方法的类)

一旦清单准备就绪,就会调用jar可执行文件

它有很多选项,这里我使用-c-m-f(-c来创建jar,-m来指定清单文件,-f=文件应该命名为..)和我想要jar的文件夹

$jar -cmf manifest.mf hello.jar start
这将在系统上创建.jar文件

您可以稍后双击该文件,它将按预期运行

要在JCreator中创建.jar文件,您只需使用“工具”菜单,创建jar,但我不确定清单是如何出现的

这是我找到的一段关于:

我想,一旦你熟悉了这个“.jar”方法,你可以继续使用这个帖子中发布的其他链接


您也可以使用(Java网络启动器协议)

Java Web Start是一种很好的技术,可以将Java富客户端从internet直接安装到最终用户的桌面(无论操作系统是Windows、Mac还是*nix)。它包括桌面集成和自动更新,以及许多其他的好东西


有关JWS的更多信息,请参阅。

Jexecutable可以为Java程序创建Windows exe。它将JAR嵌入到exe文件中,您可以像运行Windows程序一样运行它。

如果您使用的是Eclipse,您可以尝试以下7个步骤来获取Windows的.exe文件

现在您有了一个JAR文件。使用java-jarpath/jarname.jar执行


如果要将其转换为.exe,可以尝试

步骤7:
为.xml文件指定适当的名称,然后单击“保存”。xml文件是标准的,不用担心。现在将创建您的可执行文件

stawoverflow上有很多关于这个的帖子@IlmariKaronen更新了!jar文件实际上不是一个独立的可执行文件。如果双击一个jar文件,程序运行,那么它将在java可执行文件中打开jar文件?双击jar文件在任何OSs上都有效吗?@androiddeveloper只要操作系统中存在java环境,它就会起同样的作用。仅供参考,java 9中不推荐java Web Start和JNLP,并计划删除。请参阅Oracle的这篇文章,参考
JDK-8184998(非公开)
:Java部署技术已被弃用,并将在未来版本中删除Java小程序和WebStart功能,包括小程序API、Java插件、Java小程序查看器、,JNLP和javawebstart(包括javaws工具)在jdk9中都不推荐使用,将在将来的版本中删除。