您好我想为我的java应用程序创建一个exe文件。
我尝试了一些第三方软件JEXECreator,成功创建了exe文件,并且在我的系统中工作正常,当我尝试使用另一台机器时,它无法正常工作。我收到以下错误
* The error occurred while running the application. The exit code is 0x10000223.
* Contact the vendor of the application for troubleshooting.
java.lang.ClassNotFoundException: com.sample.SampleMain
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at com.ucware.JEXEClassLoader.run(Unknown Source)
at com.ucware.JEXEClassLoader.main(Unknown Source)
**************************************
我知道我设置的类路径有问题。
实际上我想自己创建exe文件而不使用任何第三方软件。
我在很多网站找到了步骤
创建名为Sample.mft的清单文件,其中包含以下内容
Manifest-Version: 1.0
Main-Class:
Class-path:
在此我有些疑惑,
如何添加Main-Class,包括完整的包名(com.sample.SampleMain)或类名(SampleMain)或扩展名(SampleMain.class)
如何添加类路径,我的项目中有4个java类和2个jar。如何在类路径中添加所有这些,我是否需要在类路径中添加java jdk。
应保存清单文件的位置
清单文件扩展名(mf或mft)
在命令提示符下,我应该从哪个目录创建exe文件(来自我的项目文件夹或src文件夹或包含所有java类的文件夹)
在命令提示符中创建jar时应该使用什么语法
(jar cmf Sample.mf Sample.jar Sample1.class Sample2.class Sample3.class Sample4.class jar1.jar jar2.jar)像这样或(jar cvfm Sample.jar sample.mf * .class)
当我做这样的事情时,我得到一个jar而不是exe文件,当我在命令提示符下使用“java -jar sample.jar”运行jar时,我得到了类找不到异常“。
实际上如何创建一个exe文件而不是jar文件,这意味着只需双击该exe文件,就可以在任何机器上运行我的应用程序。
任何人都可以帮我这样做吗?
提前致谢。
答案 0 :(得分:3)
我使用Eclipse IDE下的Ant工具与InnoSetup和Launch4J一起创建EXE及其安装程序,它还管理类路径......
指南?你可以参考:
答案 1 :(得分:1)
不能代表JEXECreator,但我可以推荐JSmooth(http://jsmooth.sourceforge.net/)。我已成功将它用于多个项目(例如this SWT based Java app)。
答案 2 :(得分:1)
就个人而言,我喜欢JSmooth。那只是包装。这意味着它仍然是一个Java应用程序。执行exe时,它会将jar解压缩到一个临时文件夹,然后用javaw -jar ...
第二个选项是gcj。但这绝对是一个糟糕的选择。这不会将jar包装在exe中,但它确实将它编译为本机系统代码。但这会大大减慢您的应用非常。您可以在this topic上查看我的时间安排的一些结果。
答案 3 :(得分:1)
我对Excelsior JET有一些积极的体验。与gcj不同,它实际上工作并且执行时间比执行的.jar文件快。缺点是它不是免费的。
答案 4 :(得分:0)
要创建exe文件,我使用launch4j。 Launch4j将jar文件转换为exe文件,如果我想将其打包为安装程序,我使用InnoSetup。对我来说,launch4j创建的exe在pcs上运行。
答案 5 :(得分:-1)
我会建议你创建一个bash文件,而不是复杂的东西,双击它就可以运行你的应用程序。但是你不能改变它的图标但是有许多免费工具可以使用你可以使用它们轻松将bash文件转换为exe。