Java 如何将.jar转换为.exe?

Java 如何将.jar转换为.exe?,java,windows,exe,Java,Windows,Exe,我想为microsoft将.jar转换为.exe。这个有程序转换器吗 另外,如果有一个适用于Mac和Linux的软件,我也会非常感谢您的建议。如果您的程序是,那么您可以尝试获得Excelsior的免费许可证。如果不是这样的话,那么它是昂贵的,但仍然是一个可行的选择 节目: 作为旁注:这里是对所有现有Jar到EXE程序的研究,这有点令人沮丧-尽管这违反了SO在这些问题上的一般政策,但这似乎是OP真正想要的: 如果愿意,还可以尝试创建包含以下行的相应批处理或脚本文件: java -jar MyJa

我想为microsoft将
.jar
转换为
.exe
。这个有程序转换器吗

另外,如果有一个适用于Mac和Linux的软件,我也会非常感谢您的建议。

如果您的程序是,那么您可以尝试获得Excelsior的免费许可证。如果不是这样的话,那么它是昂贵的,但仍然是一个可行的选择

节目:


作为旁注:这里是对所有现有Jar到EXE程序的研究,这有点令人沮丧-

尽管这违反了SO在这些问题上的一般政策,但这似乎是OP真正想要的:

如果愿意,还可以尝试创建包含以下行的相应批处理或脚本文件:

java -jar MyJar.jar
或者在许多情况下,在windows上只需双击可执行jar即可。

在windows和Linux/Mac上都适用。但是,如果您正在运行Linux/Mac,有一种方法可以将您的jar嵌入到为您执行自动启动的shell脚本中,因此您只有一个可运行的文件:

exestub.sh:

#!/bin/sh
MYSELF=`which "$0" 2>/dev/null`
[ $? -gt  0 -a -f "$0" ] && MYSELF="./$0"
JAVA_OPT=""
PROG_OPT=""
# Parse options to determine which ones are for Java and which ones are for the Program
while [ $# -gt 0 ] ; do
    case $1 in
        -Xm*) JAVA_OPT="$JAVA_OPT $1" ;;
        -D*)  JAVA_OPT="$JAVA_OPT $1" ;;
        *)    PROG_OPT="$PROG_OPT $1" ;;
    esac
    shift
done
exec java $JAVA_OPT -jar $MYSELF $PROG_OPT
然后从jar创建可运行文件:

$ cat exestub.sh myrunnablejar.jar > myrunnable
$ chmod +x myrunnable

它的工作方式与launch4j的工作方式相同:因为jar有一个,它的头位于文件的末尾。您可以拥有任何想要的头文件(二进制可执行文件或shell脚本),并运行
java-jar
,因为
是一个有效的zip/jar文件。

JSmooth.exe包装器

JSmooth是一个Java可执行包装器。它为Java应用程序创建本机Windows启动器(standard.exe)。它使java部署更加平滑和用户友好,因为它能够自己找到任何已安装的java VM。当没有可用的VM时,包装器可以自动下载并安装合适的JVM,或者简单地显示消息或将用户重定向到网站

JSmooth为您的java应用程序提供了多种包装器,每种包装器都有自己的行为:选择您的风格

下载:

JarToExe 1.8 Jar2Exe是一种将jar文件转换为exe文件的工具。 以下是其网站上描述的主要功能:

可以生成“控制台”、“Windows GUI”、“Windows服务”三种类型的.exe文件

生成的.exe文件可以添加程序图标和版本信息。 生成的.exe文件可以加密和保护java程序,程序运行时不会生成临时文件

生成的.exe文件提供系统托盘图标支持。 生成的.exe文件提供记录系统事件日志支持。 生成的windows service.exe文件能够自行安装/卸载,并支持服务暂停/继续

  • 新发布的x64版本,可以创建64位的执行器。(5月18日, 2008年)
  • 支持向导模式和命令行模式。(2008年5月18日)
  • 下载:
执行人


将Java应用程序打包为jar,Executor会将jar转换为Windows.exe文件,与本机应用程序无法区分。只需双击.exe文件即可调用Java运行时环境并启动应用程序。

对于Windows,您可以使用以下方法将jar转换为exe:

  • 使用Netbeans
  • 使用Excelsior JET

  • @史蒂夫:这是关于如何使用GCJ的(顺便说一句,这很糟糕),而不是关于可用的选项。错误的重复答案中有一个有趣的链接,其中包含关于这个主题的讨论,包括在这里的答案中提到的软件。我希望我能给TheLQ一个名声,因为它说GCJ很糟糕。为了解释为什么我在@David编辑之前发布了一个谷歌链接,OPs的原始问题特别指出“请不要告诉我这是愚蠢的,或者问我为什么,给我一些链接。”之前在stackoverflow上也讨论过,这里:你不能将特定于应用程序的图标添加到.bat文件,除非你使用“开始”“windows cmd将保持打开/可见。更正:如果您的项目是非商业性的,并且可供公众使用,您可以获得免费的Excelsior JET许可证。不管它是否是开源的。@Dmitry啊,谢谢,我习惯了开源=公共和免费。你有到Executor的链接吗?谷歌正在退回不相关的东西。