首页 文章

如何将我的Java程序转换为.exe文件? [关闭]

提问于
浏览
457

如果我有一个Java源文件(* .java)或一个类文件(* .class),我该如何将其转换为.exe文件?

我还需要一个程序安装程序 .

13 回答

  • 3

    javapackager

    Java Packager工具编译,打包和准备Java和JavaFX应用程序以进行分发 . javapackager命令是命令行版本 . - Oracle的文档

    javapackager 工具随JDK一起提供 . 它可以生成带有 -native exe 标志的.exe文件,以及许多其他内容 .

    WinRun4J

    WinRun4j是Windows的java启动器 . 它是javaw.exe的替代品,并提供以下好处:使用INI文件指定classpath,main class,vm args,program args . 任务管理器中显示的自定义可执行文件名额外的JVM args可以更灵活地使用内存 . 用于自定义图标的内置图标替换器 . [更多要点如下] - WinRun4J的网页

    这是第三方开源实用程序 . 它有许多功能,但在2013年左右之后它的发展速度已经放缓 .

    packr

    将您的JAR,资产和JVM打包,以便在Windows,Linux和Mac OS X上进行分发,添加本机可执行文件,使其看起来像本机应用程序 . Packr最适合GUI应用程序 . - packr自述文件

    这是另一个开源工具 . 它仍然在积极发展 .

    InstallAnywhere

    InstallAnywhere使开发人员可以轻松地为任何平台创建专业的安装软件 . 借助InstallAnywhere,您可以快速适应行业变化,更快地进入市场并提供引人入胜的客户体验 . 并且在发货之前了解项目的OSS组件的漏洞 . - InstallAnywhere的网站

    这是一个商业/企业程序,可为基于Java的程序生成安装程序 . 它可能能够创建.exe文件 .

    可执行JAR文件

    作为.exe文件的替代方法,您可以创建一个JAR文件,该文件在双击时自动运行adding an entry point to the JAR manifest .


    了解更多信息

    关于这个主题的一个很好的信息来源是Excelsior的文章“Convert Java to EXE – Why, When, When Not and How” .

    另见配套文章“Best JAR to EXE Conversion Tools, Free and Commercial” .

  • 6

    Launch4j

    Launch4j是一个跨平台工具,用于将Java应用程序包装为轻量级Windows本机可执行文件中的jar . 可执行文件可以配置为搜索某个JRE版本或使用捆绑的版本,并且可以设置运行时选项,如初始/最大堆大小 . 包装器还通过应用程序图标,本机预JRE启动屏幕,自定义进程名称和Java下载页面提供更好的用户体验,以防无法找到适当的JRE . - Launch4j的网站

  • 5

    更新:GCJ已经死了 . 它在2016年正式从GCC项目中删除 . 甚至在此之前,它实际上已经放弃了七年,并且无论如何它都不足以完成作为可行的替代Java实现 . 去找另一个Java AOT编译器 .

    GCJ: The GNU Compiler for Java可以将Java源代码编译为本机机器代码,包括Windows可执行文件 .

    虽然并非GCJ支持Java中的所有内容,尤其是GUI组件(请参阅FAQ中的What Java API's are supported? How complete is the support?问题) . 我没有完成控制台应用程序,看起来很好 .

    使用GCJ创建独立可执行文件的一个缺点是生成的EXE的大小可能非常大 . 有一次我在GCJ中编译了一个简单的控制台应用程序,结果是一个大约1 MB的可执行文件 . (可能有一些我不知道的方法 . 另一种选择是可执行的压缩程序 . )

    在开源安装程序方面,Nullsoft Scriptable Install System是一个可编写脚本的安装程序 . 如果您感到好奇,有user contributed examples如何检测是否存在JRE并在未安装所需的JRE时自动安装 . (只是为了让你知道,我之前没有使用过NSIS . )

    有关使用NSIS安装Java应用程序的更多信息,请查看my response以获取问题“What's the best way to distribute Java applications?

  • 16

    您可以使用以下代码创建批处理文件:

    start javaw -jar JarFile.jar
    

    并使用任何.bat到.exe转换器将.bat转换为.exe .

  • 292

    我们使用Install4J为windows或unix环境构建安装程序 .

    它可以轻松定制,直到您想要为标准对话无法完成的特殊操作编写脚本 . 但即使我们用它设置Windows服务,我们只使用标准组件 .

    • 安装程序启动器

    • windows或unix

    • 用Java编写脚本

    • Ant 任务

    • 许多可自定义的标准面板和操作

    • 可选地包括或下载JRE

    • 也可以启动Windows服务

    • 多种语言

    我认为Launch4J来自同一家公司(只是 Launcher - 没有安装程序) .

    PS:遗憾的是,我没有因此获得报酬 . 我只是喜欢那个工具 .

  • 104

    最新的Java Web Start已得到增强,允许良好的离线操作以及允许"local installation" . 值得研究 .

    编辑2018:Java Web Start不再与最新的JDK捆绑在一起 . Oracle正在推动“使用封闭的JRE在本地部署您的应用程序”模式 .

  • 33

    如果您需要将整个应用程序转换为本机代码,即EXE加DLL,则有ExcelsiorJET . 我发现它运行良好,并提供了捆绑JRE的替代方案 .

  • 22

    恕我直言JSmooth似乎做得很好 .

  • 4

    我想说launch4j是将java源代码(.java)转换为.exe文件的最佳工具你甚至可以用它来捆绑一个jre进行分发,甚至可以将exe图标化 . 尽管应用程序的大小增加,但即使用户没有安装jre,它也能确保应用程序完美运行 . 它还确保您能够提供应用程序所需的特定jre,而无需用户单独安装它 . 但不幸的是,java失去了它的重要性 . 它的多平台支持完全被忽略,最终的应用程序仅支持Windows . 但是,如果你只为Windows用户提供服务,这不是什么大问题 .

  • 9

    你可以使用Janel . 最后一个用作应用程序启动器或服务启动器(可从4.x获得) .

  • 9

    或者,您可以使用一些java-to-c转换器(例如,JCGO)并将生成的C文件编译为目标平台的本机二进制(.exe)文件 .

  • 2

    我可以原谅我反对将java程序转换为.exe应用程序而且我有我的理由 . 主要的一个是java程序可以从很多IDE编译成jar文件 . 当程序采用.jar格式时,它可以在多个平台上运行,而不是.exe,它只能在非常有限的环境中运行 . 我认为Java程序不应转换为Exe,除非它是非常必要的 . 人们总是可以编写运行Java程序的.bat文件,而它是一个jar文件 .

    如果确实需要将它转换为exe,那么Jar2Exe转换器会默默地执行此操作,并且还可以附加与主应用程序一起编译的库 .

  • 15

    你可以使用jar2exe将jar转换为exe . 但是,您需要购买该软件 . 如果你需要一个开源软件我会建议JSmooth .

相关问题