我在我的项目中设置了 Netbeans,以便“右键单击项目 -> 打包为 -> EXE 安装程序”将为应用程序创建一个可执行安装程序。
问题是安装程序在本地设置应用程序
C:\%USERNAME%\AppData\Local\ApplicationName
。
有没有办法让安装程序允许选择安装目录,或者至少为所有用户安装应用程序?
通常我们使用C:\program files\...
最佳答案
我最终没有使用 Netbeans 内置的工具,因为我发现它们非常有限。
Netbeans 使用 Inno Setup 创建其可执行文件。虽然它可能存在,但我找不到在哪里编辑 Inno 用来创建这些可执行文件的脚本,所以我自己做了。
我用了this将所有依赖项组合到我的应用程序中的指南。如果您有多个,请在文件要求的地方添加额外的行。
我用了Launch4j将我的 .jar 打包为 .exe。
我使用 Inno Setup 获取该可执行文件并制作一个带有图标、桌面图标和开始菜单图标支持以及卸载支持的安装程序。这是我使用的脚本(主要是用 gui 生成的)删除了个人信息:
; Script generated by the Inno Setup Script Wizard.
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!
[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=generated guid
AppName=app name
AppVersion=1.0
;AppVerName=app version name
AppPublisher=company name
AppPublisherURL=company name
AppSupportURL=company site
AppUpdatesURL=company site
DefaultDirName={pf}\app name
DefaultGroupName=app name
AllowNoIcons=yes
OutputDir=output directory
OutputBaseFilename=setup
SetupIconFile=icon directory
Compression=lzma
SolidCompression=yes
[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl"
[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked
[Files]
Source: "exe location"; DestDir: "{app}"; Flags: ignoreversion
; NOTE: Don't use "Flags: ignoreversion" on any shared system files
[Icons]
Name: "{group}\application name"; Filename: "{app}\exe file"
Name: "{group}\{cm:UninstallProgram,application name}"; Filename: "{uninstallexe}"
Name: "{commondesktop}\application name"; Filename: "{app}\application name.exe"; Tasks: desktopicon
[Run]
Filename: "{app}\application name.exe"; Description: "{cm:LaunchProgram,application name}"; Flags: nowait postinstall skipifsilent
我知道这并没有真正获得很多流量,但我希望它能帮助以后遇到它的任何人。
关于java - 使用允许安装目录选择的 Netbeans 创建 .exe,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31034584/