windows打包linux程序,打包Windows/Linux桌面的Java应用程序

为了跟进pauxu的答案,我使用launch4j和NSIS在我的一个项目,并认为这将有助于展示我如何使用它们。这是我在为Windows做的。 BTW,我正在为Mac创建.app和.dmg,但还没有想出为Linux做什么。

项目launch4j和NSIS的副本

在我的项目中,我有一个“供应商”目录,它下面有一个目录“launch4j”和“nsis”。每个都是每个应用程序的安装副本。我发现更容易有副本本地的项目,而不是强迫其他人安装这两个产品,并设置一些类型的环境变量指向每个。

脚本文件

我还在我的项目中有一个“scripts”目录,其中包含我的项目的各种配置/脚本文件。首先是launch4j.xml文件:

true

gui

rpgam.jar

rpgam.exe

.

normal

http://www.rpgaudiomixer.com/

false

false

1.5.0

preferJre

..\images\splash.bmp

true

60

true

然后有NSIS脚本rpgam-setup.nsis。它可以使用VERSION参数来帮助命名文件。

; The name of the installer

Name "RPG Audio Mixer"

!ifndef VERSION

!define VERSION A.B.C

!endif

; The file to write

outfile "..\dist\installers\windows\rpgam-${VERSION}.exe"

; The default installation directory

InstallDir "$PROGRAMFILES\RPG Audio Mixer"

; Registry key to check for directory (so if you install again, it will

; overwrite the old one automatically)

InstallDirRegKey HKLM "Software\RPG_Audio_Mixer" "Install_Dir"

# create a default section.

section "RPG Audio Mixer"

SectionIn RO

; Set output path to the installation directory.

SetOutPath $INSTDIR

File /r "..\dist\layout\windows\"

; Write the installation path into the registry

WriteRegStr HKLM SOFTWARE\RPG_Audio_Mixer "Install_Dir" "$INSTDIR"

; Write the uninstall keys for Windows

WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\RPGAudioMixer" "DisplayName" "RPG Audio Mixer"

WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\RPGAudioMixer" "UninstallString" '"$INSTDIR\uninstall.exe"'

WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\RPGAudioMixer" "NoModify" 1

WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\RPGAudioMixer" "NoRepair" 1

WriteUninstaller "uninstall.exe"

; read the value from the registry into the $0 register

;readRegStr $0 HKLM "SOFTWARE\JavaSoft\Java Runtime Environment" CurrentVersion

; print the results in a popup message box

;messageBox MB_OK "version: $0"

sectionEnd

Section "Start Menu Shortcuts"

CreateDirectory "$SMPROGRAMS\RPG Audio Mixer"

CreateShortCut "$SMPROGRAMS\RPG Audio Mixer\Uninstall.lnk" "$INSTDIR\uninstall.exe" "" "$INSTDIR\uninstall.exe" 0

CreateShortCut "$SMPROGRAMS\RPG AUdio Mixer\RPG Audio Mixer.lnk" "$INSTDIR\rpgam.exe" "" "$INSTDIR\rpgam.exe" 0

SectionEnd

Section "Uninstall"

; Remove registry keys

DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\RPGAudioMixer"

DeleteRegKey HKLM SOFTWARE\RPG_Audio_Mixer

; Remove files and uninstaller

Delete $INSTDIR\rpgam.exe

Delete $INSTDIR\uninstall.exe

; Remove shortcuts, if any

Delete "$SMPROGRAMS\RPG Audio Mixer\*.*"

; Remove directories used

RMDir "$SMPROGRAMS\RPG Audio Mixer"

RMDir "$INSTDIR"

SectionEnd

蚂蚁集成

我在我的Ant构建文件(build.xml)中有一些目标来处理上面的。首先我tel要导入launch4j的Ant任务:

classname="net.sf.launch4j.ant.Launch4jTask"

classpath="${launch4j.dir}/launch4j.jar:${launch4j.dir}/lib/xstream.jar" />

然后我有一个简单的目标创建包装器可执行文件:

另一个使安装程序的目标:

它的顶部只是将安装程序的必要文件复制到临时位置,下半部分执行使用所有文件制作安装程序的脚本。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值