gpt4 book ai didi

java - 如何为 izpack 安装程序 .jar 文件制作 .exe 文件

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:58:10 32 4
gpt4 key购买 nike

我用 izpack 做了一个安装程序。它在 .jar 文件中。我想把它放在 .exe 文件中以便分发。我怎样才能以简单的方式做到这一点?

最佳答案

Andrew 总是喜欢从一开始就推广 Java Web Start 技术 :) 这是一项不错的技术。但是,您还需要先学习技术部分,然后才能开始修补它。

否则,您将使用如下老式 EXE 分发模型...

反正我不熟悉Izpack。但是,对于 izPack 可以做什么,有类似的单独工具可以实现综合结果。我最喜欢的 EXE 创建和安装程序工具是 Launch4J + InnoSetup + Ant taskEclipse IDE 运行。

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 and Windows 7 have introduced a strict user access policy through the User Access Control (UAC) prompt feature. The software installation must be done using a user account under Administrators group. All folders under the default Windows’ system Program Files are set to read-only and it may cause a problem to non-administrator user accounts when trying to save something in it. To run Java app using a non-administrator user account, the application properties must be set to enable Run as administrator. A shortcut shall be created in the Desktop and be set to enable Run as
administrator
as well.

如何解决以下问题:

(1) AppUserModelID 问题Windows Vista/Windows 7 中的 Java 支持需要以下解决方案: Launch4j, NSIS, and duplicate pinned Windows 7 taskbar icons

(2) Run as Administrator 问题Java 应用程序需要以下解决方案: Request admin privileges for Java app on Windows Vista

除此之外,你还需要查看%ProgramFiles%在 64 位 Windows 版本下运行时。 32 位 Windows 和 64 位 Windows 之间的路径不同。在 64 位 Windows 下,所有 32 位应用程序将进入 %ProgramFiles(x86)% .

因此,在将硬编码文件路径值用于安装在 %ProgramFiles% 中的 Java 应用程序文件夹和子文件夹时要小心。 .最好设置一个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"

实验并享受!

关于java - 如何为 izpack 安装程序 .jar 文件制作 .exe 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5646813/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com