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