安德鲁总是喜欢从一开始就推广Java Web Start技术:)这是一个很好的技术.但是,在开始修补之前,您还需要先学习技术部分.
否则,您将使用旧式EXE分发模型,如下所示......
无论如何,我对Izpack并不熟悉.但是,有类似的单独工具来实现izPack可以做的组合结果.我最喜欢的EXE创建和安装工具是从Eclipse IDE运行的Launch4J + InnoSetup + Ant任务.
Launch4J是一个Java应用程序启动器. InnoSetup是一个安装创建者 Ant任务,可帮助开发人员构建和集成步骤.
如何使用Launch4J + InnoSetup + Ant构建任务+ Eclipse IDE:http: //www.eteks.com/tips/tipCreationExe.html(法语 - 使用谷歌翻译)
当您考虑为Java应用程序分发基于桌面的Windows EXE文件时,还需要考虑目标环境.当您使用Windows XP或更低版本时,它很好.但是,当您希望在Windows Vista和Windows 7下正常运行时,它将开始成为一个主要的挫折.
最好不要存储需要保存到%ProgramFiles%Windows Vista/Windows 7下的应用程序配置,临时文件等,因为它现在变为只读文件夹.出于此目的,请使用用户的配置文件夹.
当然,您可以通过"以管理员身份运行"运行应用程序来绕过它,但它涉及以下设置:
Windows Vista和Windows 7通过用户访问控制(UAC)提示功能引入了严格的用户访问策略.必须使用Administrators组下的用户帐户安装软件.默认Windows系统下的所有文件夹
Program Files都设置为只读,在尝试保存其中的某些内容时,可能会导致非管理员用户帐户出现问题.要使用非管理员用户帐户运行Java应用程序,必须将应用程序属性设置为启用Run as administrator.应在桌面中创建快捷方式,并将其设置为启用Run as administrator.
如何解决以下问题:
(1)AppUserModelIDWindows Vista/Windows 7中的Java支持问题需要以下解决方案:
Launch4j,NSIS和重复固定的Windows 7任务栏图标
(2)Run as AdministratorJava应用程序的问题需要以下解决方案:
在Windows Vista上请求Java应用程序的管理员权限
除此之外,您还需要%ProgramFiles%在64位Windows版本下运行时进行检查.32位Windows和64位Windows之间的路径不同.在64位Windows下,所有32位应用程序都将进入%ProgramFiles(x86)%.
因此,在将硬编码文件路径值用于Java应用程序的文件夹和安装的子文件夹时要小心%ProgramFiles%.最好设置一个Windows environment variable可以由InnoSetup在以下ISS文件片段中生成的.使用Java System.getenv("MYAPP_HOME")检索变量:
[Registry]
Root: HKLM; Subkey: "SYSTEM\CurrentControlSet\Control\Session Manager\Environment"; Flags: uninsdeletevalue; ValueType: string; ValueName: "MYAPP_HOME"; ValueData: "{app}\"
[Tasks]
Name: modifypath; Description:"Add application directory to your environmental path"; Flags: unchecked
[Run]
Filename: "{app}\MyApp.EXE"; Parameters: """{app}""\"; WorkingDir: "{app}\"; Description: "Run MyApp"; Flags: postinstall nowait skipifsilent
[Code]
const
ModPathName = 'modifypath';
ModPathType = 'system';
function ModPathDir(): TArrayOfString;
begin
setArrayLength(Result, 1)
Result[0] := ExpandConstant('{app}');
end;
#include "modpath.iss"
Run Code Online (Sandbox Code Playgroud)
实验并享受!
如果应用程序。有一个 GUI,您可以从网站进行分发,Java Web Start提供了最好的解决方案。JWS 适用于所有支持 Java 的平台,并受 Oracle 支持。
(我听说 .Net 对于“仅限 Windows”的解决方案效果很好。)
| 归档时间: |
|
| 查看次数: |
9897 次 |
| 最近记录: |