我们有一个Web应用程序,我们需要为客户更轻松地部署它们.新安装的当前工作流程:
这对我们的用户来说是一个繁琐的过程,我想将它封装到一个安装程序中,并且一直在NSIS中看到这样做,这似乎有一个庞大的社区,但后来偶然发现了install4j,虽然看起来鲜为人知,但更多特定于基于java的应用程序.
只是想从更多经验丰富的用户那里得到一些平台上最佳选择的反馈.
我不想半途而废,然后意识到我选择了错误的安装平台.
我们基于install4j的应用程序具有一个名为(例如foobar-1.0.jar)的第三方库
在更新的版本中,我们用foobar-1.1.jar替换了jar
install4j更新程序会添加新的jar,但不会删除旧的jar。所以现在两者都在类路径上。这使我们的应用崩溃。
如何告诉更新程序删除不再存在的文件?
我有使用install4j构建的我的应用程序的Linux版本,但我不知道如何使该服务在用户帐户下运行。有推荐的方法吗?
我已经和它斗争了很长一段时间,如果有人能帮我理解这里发生的事情,我将非常感激.
我有一个install4j项目,它为Windows和OSX创建安装程序包.我有一个Windows的常规签名证书,这没有问题.我也有Apple开发人员证书.我已将私钥从我的钥匙串导出到p12文件.我测试了生成的p12文件,以确保它与密钥库密码一起使用.证书绝对有效,因为我今天(再次)创建了它.而且,当我通过Maven运行安装程序时,它看起来好像一切都很顺利:
[INFO] Compressed media file 'Mac OS X Single Bundle':
[INFO] Compressing files
[INFO] Generating VM options file vmoptions.txt.
[INFO] Signing installer
[INFO] Signing DMG
[INFO] Moving media files to media directory /Users/....
[INFO] The name of the media file is my-app_macos_1_1_1.dmg.
[INFO] The size of the media file is 4.8 MB
Run Code Online (Sandbox Code Playgroud)
这似乎很好,除了安装程序和dmg没有签名,或者至少不是有用的方式:
$ spctl -a -v target/media/my-app_macos_1_1_1.dmg
target/media/my-app_macos_1_1_1.dmg: CSSMERR_TP_CERT_EXPIRED
$ spctl -a -v /Volumes/my-app/My\ Application\ Installer.app
/Volumes/my-app/My Application Installer.app: CSSMERR_TP_CERT_EXPIRED
Run Code Online (Sandbox Code Playgroud)
证书尚未过期:
Alias name: mac developer: me myself (my …Run Code Online (Sandbox Code Playgroud)
现在,对于我的JavaFX Application,我正在使用Afterburner FX Framework。现在,我需要为此应用程序创建一个安装程序,以将其部署到其他设备。我正在使用Install4j。我的步骤:
mvn clean package但是随后出现错误对话框:
java.lang.NoClassDefFoundError:BOOT-INF / classes / inc / pabacus / TaskMetrics / TaskMetricsApplication(名称错误:inc / pabacus / TaskMetrics / TaskMetricsApplication)
我已经创建了我的 Install4j 项目,到目前为止我对安装、卸载和更新过程感到满意。但是,出现了一种新情况,当用户更新产品的新版本时,我需要阻止 install4j 覆盖用户安装目录中的特定文件。谁能告诉我如何强制/配置 install4j 以便在更新现有安装时不会覆盖特定文件。
例如,当我安装我的应用程序时,我将一个数据库文件 (mydb.script) 作为安装文件的一部分,以便用户可以使用一个数据库。我发现当我创建应用程序的新版本并再次安装时,install4j 已经检测到我安装了以前的版本并询问我是否要更新该版本。我点击“是”,它就完成了它的工作。但是,在此过程中,它实际上用安装程序内部的数据库覆盖了以前的数据库(导致用户丢失了自第一次安装以来输入的所有数据)。我不想要这种行为。我想告诉 install4j 不要覆盖这个特定的文件(如果它存在)。
是否有集成功能可以让我在Install4J安装程序完成后自动启动程序?理想情况下,添加"安装完成后启动"按钮.
我看到安装程序中的完成表单上有字段"激活后脚本"属性,但不确定是否可以使用它.
每当我通过运行install4j scrip创建安装程序可执行文件时,它总是包含默认图标.如何更改相同内容以提供公司的图标?我正在使用Windows平台.
Install4j允许您在安装期间包含许可协议窗口.不幸的是,Next,Cancel按钮上面的行有一个前缀"install4j"的字样.有什么办法可以删除吗?(注意:目标窗口似乎做了同样的事情.所以无论如何都要从所有拥有它的窗口中删除这个行前缀?)
我们公司从GlobalSign订购了 EV 证书。
之前我们有一个可以在 Install4J 中使用的 p12 文件形式的普通代码签名证书。
现在,有了新证书,我们就没有证书文件了,只有一个 USB 令牌。
是否有内置方法可以使用 USB 令牌来签署可执行文件/jar?或者我是否需要使用媒体向导的“可执行处理”步骤,如此处提到的?
也许有一种方法可以从一台机器(如 macos)上签署所有安装程序(win、mac、linux)?