`
快乐的牛
  • 浏览: 74442 次
社区版块
存档分类
最新评论

使用launch4j + InnoSetup打包你的java程序

 
阅读更多

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程序,已经变得很专业了。

分享到:
评论
1 楼 xiaotao.2010 2012-01-14  
难得找到~

相关推荐

    innosetup-6.0.5 exe打包安装程序

    通过将Java可执行jar文件转换为.exe文件(如使用Launch4j),然后使用InnoSetup打包,即可创建一个符合Windows用户习惯的Java应用安装程序。这样不仅解决了Java应用的跨平台问题,还能提供一个统一的安装和卸载体验...

    java程序转为exe可执行程序(inno setup)

    另一种方法是使用第三方工具,如Launch4j,它可以创建轻量级的可执行包装,不过仍然需要用户有合适的JRE版本。 总结,通过Inno Setup将Java程序转换为.exe可执行程序,不仅简化了用户端的运行流程,也便于软件的...

    java打包工具launch4j-3.0.1

    除了基本的Java应用打包,Launch4j还可以配合其他工具,如Inno Setup创建安装程序,进一步提高用户体验。 总之,Launch4j是Java开发者不可或缺的工具之一,它简化了Java程序在Windows平台上的部署和运行。通过合理...

    使用maven将Java程序打包成exe文件并制作成Windows系统服务(四)使用Inno Setup制作一键安装包insta

    总结起来,本文介绍了如何使用Maven、Launch4j、winsw和Inno Setup将Java Spring Boot应用打包成exe文件,注册为Windows服务,并创建一个一键安装包。这一系列操作使得Java程序在Windows环境下的部署变得更加简便和...

    java+Swing打包成exe可安装文件(可在无jdk环境机器上运行)

    4. **打包成安装程序**:为了方便用户安装,你可以进一步将 .exe 文件和任何必要的资源打包成安装程序,如 Inno Setup 或 NSIS。这样,用户只需运行安装程序,即可自动完成 JRE 的检测或安装,以及你的 Java Swing ...

    java程序打包方案

    常见的工具包括`Launch4j`、`Inno Setup`等。 1. **使用Launch4j** - 下载并安装`Launch4j`。 - 打开`Launch4j`,按照提示填写相关信息,如JRE路径、主类等。 - 选择输出目录并生成`.exe`文件。 2. **使用Inno...

    innosetup_xz7.com.zip

    Java转exe的过程,也称为“JAR到EXE”的转换,可以通过各种工具完成,如InnoSetup、Launch4j、JEXE打包器等。这些工具允许开发者将Java应用及其所需的JRE部分封装在一个exe文件中,使得用户可以直接双击运行,无需...

    java项目打包成windows下的exe程序文件(带文档教程)

    总结,将Java项目打包成Windows下的exe程序文件涉及多个步骤,包括JAR文件的创建、使用Launch4j转换为exe文件,以及通过Inno Setup创建安装程序。这个过程需要对Java开发环境、第三方工具以及Windows应用打包有一定...

    将jar打包成exe脱离jdk环境运行的方法.

    此外,还有一些高级选项,如使用Inno Setup创建安装程序,它可以将JRE和应用程序一起打包,用户只需一键安装即可。这种方式更加友好,但需要更复杂的配置。 总的来说,将.jar打包成.exe是Java开发者为了提高用户...

    JAVA程序打包成exe文件

    - **Inno Setup**:虽然主要用于制作安装程序,但也可以用来打包Java应用程序,并提供安装JRE的功能。 - **NSIS (Nullsoft Scriptable Install System)**:一款脚本化的安装程序制作工具,同样支持将Java程序打包为...

    Java的jar包打包为exe安装程序

    这个转换过程通常是通过第三方工具完成的,如Launch4j、JSmooth、Excelsior JET等。这些工具能够创建一个可执行的Windows外壳,该外壳负责调用Java虚拟机并加载JAR文件。 3. **64位和32位版本**:在描述中提到有64...

    Java应用程序打包成exe工具

    - **Launch4j**:这是一个流行的开源工具,用于将Java应用程序封装为可执行的Windows GUI或控制台应用程序。它不包含Java代码,而是创建一个Windows外壳,启动JRE并运行JAR文件。 - **JSmooth**:另一个开源工具,...

    java程序转换成exe

    1. **使用Java到exe转换工具**:有多种第三方工具可以帮助实现这个转换,如Excelsior JET、Launch4j、JSmooth、Bundler和exe4j。其中,exe4j是一个广泛使用的工具,如压缩包中的"exe4j_windows_4_5_2.exe"所示。这些...

    Java如何生成exe文件

    通过以上步骤,你可以成功地将Java程序转换为.exe文件并打包成安装程序,使得非Java环境下的用户也能轻松使用你的应用程序。不过,这种方式仅适用于Windows平台,对于其他操作系统,可能需要采用不同的打包和部署...

    java程序发布资料收集

    3. **安装包制作**:对于跨平台的应用,可以使用Inno Setup、NSIS等工具制作安装包,包含Java运行时环境和应用本身,确保用户端能顺利运行。 四、持续集成与部署 现代Java开发通常结合持续集成/持续部署(CI/CD)...

    将Java代码打包为exe文件(绝对可行)

    - **Launch4j**:一款开源工具,可以将Java应用程序打包成独立的exe文件。 - **Exe4j**:JetBrains公司提供的工具,支持多种类型的输出,包括exe文件。 - **Inno Setup**:虽然主要作为安装程序生成器,但也支持创建...

    程序打包安装

    对于C#程序,打包安装通常会使用Visual Studio内置的Setup & Deployment项目模板,或者第三方工具如Advanced Installer、Inno Setup等。这些工具可以帮助开发者创建 MSI (Microsoft Installer) 文件,这是一种...

    jar生成exe文件教程以及相关工具安装包(全一套)

    4. **exe4j**:exe4j是一个用于将Java应用程序打包成.exe可执行文件的工具。它可以将Java代码和运行时环境(如JRE)整合在一起,生成独立的Windows可执行文件。在这个教程中,你可能需要使用exe4j来完成.jar到.exe的...

    使用maven将Java程序打包成exe文件并制作成Windows系统服务(三)之springboot+nssm生成系统服务

    生成的JAR文件需要通过第三方工具,如Launch4j、JEXEWrapper或者Inno Setup,转换为exe格式。这些工具允许设置图标、添加启动参数等,使exe看起来更像Windows应用程序。 步骤三:使用NSSM NSSM是一个小巧的工具,...

    五子棋 java 有打包成exe文件

    - **Java可执行文件(Excelsior JET、Launch4j、JPackage等)**:为了生成.exe文件,可以使用第三方工具,如Excelsior JET将Java代码编译成原生代码,或者使用Launch4j这样的轻量级工具,它不进行编译,而是创建一...

Global site tag (gtag.js) - Google Analytics