1.满足于Jar吗?
写了个java桌面程序,封装成了.jar文件可以双击运行。满足于此吗?这个程序看起来不像一个Windows 应用程序。首先,进程名称是javaw.exe,而不是你自定义的进程名称。没有图标。不是.exe可执行文件,用户开始看到会犹豫,这玩意能不能运行?
2.封装jar 成 exe
先把jar做成exe程序,有很多开源软件可供选择,这里推荐launch4j。网上拷贝一份配置文件,改改,就可以了。下面是简单的launch4j配置文件:
<launch4jConfig>
<headerType>gui</headerType>
<!--gui程序,若填console,程序运行时,会有一个命令行跟着启动;即使是后台应用程序,也建议用gui-->
<outfile>a.exe</outfile>
<!--输出文件,不用多说,这里指定文件名即可-->
<jar>lib/xx.jar</jar>
<!--很重要,你的main函数在那个jar包中-->
<dontWrapJar>false</dontWrapJar>
<!--这里选false,将jar封装成exe二进制格式-->
<downloadUrl>http://java.com/download</downloadUrl>
<!--如果机器上没有jre,提示用户到这里去下载-->
<icon>xx.ico</icon>
<!--支持程序图标-->
<customProcName>true</customProcName>
<classPath>
<mainClass>MainClass</mainClass>
<cp>lib/*.jar</cp>
<!--这个很重要,指定classpath-->
</classPath>
<singleInstance>
<mutexName>xx</mutexName>
<windowTitle>text</windowTitle>
</singleInstance>
<!--是否允许多实例运行-->
<jre>
<minVersion>1.6.0</minVersion>
<maxVersion>1.7.0</maxVersion>
<jdkPreference>preferJre</jdkPreference>
<!--指定依赖的jre环境,最低,最高版本-->
</jre>
</launch4jConfig>
launch4j支持以ant任务的方式执行封装任务,方便自动化。下面是简单的ant任务配置:
<property name="launch4j.dir" location="path-to-launch4j/" />
<target name="exe" depends="junit">
<taskdef name="launch4j" classname="net.sf.launch4j.ant.Launch4jTask" classpath="${launch4j.dir}/launch4j.jar
:${launch4j.dir}/lib/xstream.jar" />
<launch4j configFile="launch4j.xml" />
</target>
3.已经是exe文件了,不过是绿色软件,有时候需要做一个安装程序setup.exe,为程序执行准备环境,如制作成 windows 服务开机运行,或者为用户创建快捷方式等等。这里推荐功能强大的InnoSetup,自己写一个脚本,自动完成封装。下面是简单的Inno Script脚本文件:
; Script generated by the Inno Setup Script Wizard.
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!
#define MyAppName "A Name"
#define MyAppVersion "1.0"
#define MyAppPublisher "xx, Inc."
#define MyAppURL "http://www.xxx.com/"
#define MyAppExeName "xxx.exe"
[Setup]
; NOTE: The value of AppId uniquely identifies this application.
; Do not use the same AppId value in installers for other applications.
; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
AppId={{id-generated}
AppName={#MyAppName}
AppVersion={#MyAppVersion}
;AppVerName={#MyAppName} {#MyAppVersion}
AppPublisher={#MyAppPublisher}
AppPublisherURL={#MyAppURL}
AppSupportURL={#MyAppURL}
AppUpdatesURL={#MyAppURL}
DefaultDirName={pf}\{#MyAppName}
DefaultGroupName={#MyAppName}
OutputBaseFilename=setup
Compression=lzma
SolidCompression=yes
[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl"
[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked
[Files]
Source: "xx.exe"; DestDir: "{app}"; Flags: ignoreversion
Source: "xx.xml"; DestDir: "{app}"; Flags: ignoreversion
Source: "lib\*"; DestDir: "{app}\lib"; Flags: ignoreversion recursesubdirs createallsubdirs
; NOTE: Don't use "Flags: ignoreversion" on any shared system files
[Icons]
;这里配置快捷方式
Name: "{group}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"
Name: "{group}\{cm:UninstallProgram,{#MyAppName}}"; Filename: "{uninstallexe}"
Name: "{commondesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon
[Run]
Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"; Flags: nowait postinstall skipifsilent
上面的文件挺复杂的?我也没有解释,呵呵,因为上面的内容基本上是InnoSetup自动生成的,在InnoSetup Compiler里,新建iss文件,会有向导一步一步提示。OK,完成了,马上跑一下setup.exe,现在,你的java程序,已经变得很专业了。
分享到:
相关推荐
通过将Java可执行jar文件转换为.exe文件(如使用Launch4j),然后使用InnoSetup打包,即可创建一个符合Windows用户习惯的Java应用安装程序。这样不仅解决了Java应用的跨平台问题,还能提供一个统一的安装和卸载体验...
另一种方法是使用第三方工具,如Launch4j,它可以创建轻量级的可执行包装,不过仍然需要用户有合适的JRE版本。 总结,通过Inno Setup将Java程序转换为.exe可执行程序,不仅简化了用户端的运行流程,也便于软件的...
除了基本的Java应用打包,Launch4j还可以配合其他工具,如Inno Setup创建安装程序,进一步提高用户体验。 总之,Launch4j是Java开发者不可或缺的工具之一,它简化了Java程序在Windows平台上的部署和运行。通过合理...
总结起来,本文介绍了如何使用Maven、Launch4j、winsw和Inno Setup将Java Spring Boot应用打包成exe文件,注册为Windows服务,并创建一个一键安装包。这一系列操作使得Java程序在Windows环境下的部署变得更加简便和...
4. **打包成安装程序**:为了方便用户安装,你可以进一步将 .exe 文件和任何必要的资源打包成安装程序,如 Inno Setup 或 NSIS。这样,用户只需运行安装程序,即可自动完成 JRE 的检测或安装,以及你的 Java Swing ...
常见的工具包括`Launch4j`、`Inno Setup`等。 1. **使用Launch4j** - 下载并安装`Launch4j`。 - 打开`Launch4j`,按照提示填写相关信息,如JRE路径、主类等。 - 选择输出目录并生成`.exe`文件。 2. **使用Inno...
Java转exe的过程,也称为“JAR到EXE”的转换,可以通过各种工具完成,如InnoSetup、Launch4j、JEXE打包器等。这些工具允许开发者将Java应用及其所需的JRE部分封装在一个exe文件中,使得用户可以直接双击运行,无需...
总结,将Java项目打包成Windows下的exe程序文件涉及多个步骤,包括JAR文件的创建、使用Launch4j转换为exe文件,以及通过Inno Setup创建安装程序。这个过程需要对Java开发环境、第三方工具以及Windows应用打包有一定...
此外,还有一些高级选项,如使用Inno Setup创建安装程序,它可以将JRE和应用程序一起打包,用户只需一键安装即可。这种方式更加友好,但需要更复杂的配置。 总的来说,将.jar打包成.exe是Java开发者为了提高用户...
- **Inno Setup**:虽然主要用于制作安装程序,但也可以用来打包Java应用程序,并提供安装JRE的功能。 - **NSIS (Nullsoft Scriptable Install System)**:一款脚本化的安装程序制作工具,同样支持将Java程序打包为...
这个转换过程通常是通过第三方工具完成的,如Launch4j、JSmooth、Excelsior JET等。这些工具能够创建一个可执行的Windows外壳,该外壳负责调用Java虚拟机并加载JAR文件。 3. **64位和32位版本**:在描述中提到有64...
- **Launch4j**:这是一个流行的开源工具,用于将Java应用程序封装为可执行的Windows GUI或控制台应用程序。它不包含Java代码,而是创建一个Windows外壳,启动JRE并运行JAR文件。 - **JSmooth**:另一个开源工具,...
1. **使用Java到exe转换工具**:有多种第三方工具可以帮助实现这个转换,如Excelsior JET、Launch4j、JSmooth、Bundler和exe4j。其中,exe4j是一个广泛使用的工具,如压缩包中的"exe4j_windows_4_5_2.exe"所示。这些...
通过以上步骤,你可以成功地将Java程序转换为.exe文件并打包成安装程序,使得非Java环境下的用户也能轻松使用你的应用程序。不过,这种方式仅适用于Windows平台,对于其他操作系统,可能需要采用不同的打包和部署...
3. **安装包制作**:对于跨平台的应用,可以使用Inno Setup、NSIS等工具制作安装包,包含Java运行时环境和应用本身,确保用户端能顺利运行。 四、持续集成与部署 现代Java开发通常结合持续集成/持续部署(CI/CD)...
- **Launch4j**:一款开源工具,可以将Java应用程序打包成独立的exe文件。 - **Exe4j**:JetBrains公司提供的工具,支持多种类型的输出,包括exe文件。 - **Inno Setup**:虽然主要作为安装程序生成器,但也支持创建...
对于C#程序,打包安装通常会使用Visual Studio内置的Setup & Deployment项目模板,或者第三方工具如Advanced Installer、Inno Setup等。这些工具可以帮助开发者创建 MSI (Microsoft Installer) 文件,这是一种...
4. **exe4j**:exe4j是一个用于将Java应用程序打包成.exe可执行文件的工具。它可以将Java代码和运行时环境(如JRE)整合在一起,生成独立的Windows可执行文件。在这个教程中,你可能需要使用exe4j来完成.jar到.exe的...
生成的JAR文件需要通过第三方工具,如Launch4j、JEXEWrapper或者Inno Setup,转换为exe格式。这些工具允许设置图标、添加启动参数等,使exe看起来更像Windows应用程序。 步骤三:使用NSSM NSSM是一个小巧的工具,...
- **Java可执行文件(Excelsior JET、Launch4j、JPackage等)**:为了生成.exe文件,可以使用第三方工具,如Excelsior JET将Java代码编译成原生代码,或者使用Launch4j这样的轻量级工具,它不进行编译,而是创建一...