问题标签 [install4j]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
788 浏览

java - install4j 安装完成后启动 Java Web Start 应用程序

我正在尝试在安装完成后启动 install4j Launcher,但它不起作用。启动器虽然可以作为开始菜单项工作。我有理由相信这是因为我的应用程序是通过 Java Web Start 启动的(必须是出于法律原因)。

在我的 install4j 安装程序中单击完成按钮时会发生什么:

  1. 安装程序窗口消失,Java WebStart 启动(显示其启动画面)。
  2. 什么都没有发生(通常我的 Java 应用程序会从这里开始)。

通过查看 Java 日志,我可以看到 WebStart 实际上执行了我的 Java 应用程序,但它无法完全启动,因为文件 C:\Users\UserName\AppData\Local\Temp\e4j2E4E.tmp_dir\jre\lib\ext \dnsns.jar 不再存在。这个目录似乎是 install4j 临时放置它需要运行的 JRE 的地方。

通过在文件管理器中按 F5,我可以看到在执行 WebStart 后 JRE 已被删除(我猜是 install4j)。这可以解释为什么我的 Java 应用程序会失败。

运行开始菜单启动器时(安装后手动),一切正常,因为我的 Java 应用程序正在使用与其捆绑的 JRE(在它自己的子文件夹中)。

如何防止 install4j 删除临时 JRE,或强制 WebStart 使用另一个(捆绑的)JRE 执行我的 Java 应用程序?

在此先感谢您的任何建议!

==EDIT== 这就是我的应用程序的启动方式: install4j Launcher 启动了我的一个 Java 类,它启动了一个 javaws 二进制文件,它启动了我的主要 Java 应用程序。

0 投票
1 回答
2518 浏览

install4j - install4j:如何将命令行参数传递给 Windows 服务

我已经使用 install4j 创建了一个 Windows 服务,一切正常,但现在我需要将命令行参数传递给该服务。我知道我可以在新服务向导的服务创建时配置它们,但我希望将参数传递给注册服务命令,即:

或将它们放入 .vmoptions 文件中,例如:

似乎这样做的唯一方法是修改我的代码以通过 exe4j.launchName 获取服务名称,然后加载具有该特定服务必要配置的其他文件或环境变量。我过去使用过其他的 java 服务创建工具,它们都直接支持用户注册的命令行参数。

0 投票
2 回答
693 浏览

install4j - 为单个用户或所有用户创建多个开始菜单和程序组条目

我的安装程序有一个“创建程序组”操作,它最初询问用户是仅为当前用户还是为所有用户创建开始菜单条目。安装程序进一步创建多个程序组(使用“创建程序组”)和开始菜单(使用“创建开始菜单条目”)。

这些组中的每一个都有此设置 - “为所有用户创建”。我想知道如何使用中央标志控制所有程序组和开始菜单条目 - 以便为所有用户或仅为当前用户创建它们。

一种 hacky 方法是使用为两者创建两组条目 - 一组打开“为所有用户创建”标志,另一组关闭。然后使用条件表达式并读取系统变量“sys.programGroupAllUsers”的值。

有没有更好的方法,想只创建一组条目。

0 投票
1 回答
597 浏览

install4j - 使用 Install4J 在自动启动文件夹中放置应用程序的快捷方式

我正在使用 Install4J 来构建我的应用程序。

有没有办法让 Install4J 将创建的应用程序复制(制作快捷方式)到 Windows 中的自动启动目录?我知道有一个名为 sys.startupDir 的安装程序变量,它应该指向自动启动目录,我只是不知道如何制作一个执行我想要的操作/脚本。

0 投票
1 回答
1161 浏览

install4j - Install4j 命令行编译器,带有包含空格和引号的 -D 选项

我正在尝试使用 install4J 命令行编译器 (install4jc) 构建我的应用程序。

我想使用 -D NAME=VALUE 语法将一些变量传递给编译器。

这是我的命令:

当我执行该命令时,我得到以下信息:


如果我像这样删除 application.shortName="my Short Name" :

有用。

为什么我不能使用带引号的多个选项?

0 投票
1 回答
1151 浏览

install4j - install4j - How to set Compiler Variables programmatically?

I know Installer Variables can be set programmatically. But, I see no setCompilerVariables() method ....

I want to change which component to install based on user selection.

0 投票
2 回答
1848 浏览

installation - 如何解压缩和解压缩嵌入在使用 install4j 构建的安装程序中的文件?

我正在为一个新的团队/项目评估 install4j。该计划是用一个 install4j 安装程序替换一组特定于其平台的本地安装程序。我为团队构建的输出创建了一个简单的安装程序。Install4j 使用简单的安装程序做得很好,它将构建的输出放入自解压文件中,并在执行时将其放入目录中。

但是,当我尝试解压缩和解压缩嵌入在构建输出中的文件时,它会失败,但出现以下异常。

install4j 不能“开箱即用”处理 gzip 的 tar 文件吗?我需要为此编写自定义代码吗?或者它看起来像其他类型的错误?我检查了一下,我可以自己从命令行将文件解压缩并解压到我指定的目录中。

这是我需要在我的 MySQL、Tomcat 等安装程序中处理多个工件的事情。

0 投票
2 回答
744 浏览

java - 使用 install4j 打包的 org.apache.tools.tar.* 类时,如何在 Java 中处理 GNU 长文件名?

我正在尝试向 install4j 添加一个运行脚本,该脚本处理嵌入在我的安装程序中的诸如 mysql 和 tomcat 之类的 tarball 的解压缩和解压缩。我意识到我可以将这些焦油作为 ant 构建过程的一部分进行分解,但至少在一个用例中我不能这样做。

我使用 org.apache.tools.tar.TarEntry 和 TarInputStream 类在我的运行脚本操作中包含了以下代码。这工作得相当好,有一个错误。

使用此实现,长度超过 99 个字符的文件路径将被截断,生成的文件将被分解到顶级目录中。

我试图弄清楚这是我的实现中的错误还是 apache 工具类的问题。当 tarEntry.getName() 超过 99 个字符时,它似乎没有返回整个路径。有没有一种简单的方法可以解决这个问题,而不必重写 TarInputStream 的功能?Tar.Entry 有一个 isGNULongNameEntry 方法,但我似乎无法找到一种可靠的方法来说明当它返回 true 时将文件放在哪里。

有什么建议么?

0 投票
1 回答
1310 浏览

java - install4j:通过链接启动我的应用程序的最佳方式是什么?

我有一个 Java 应用程序。它只是一个带有一些附加库的 JAR 文件。在 Windows 下,如果安装的 JRE 没有问题,双击它就足够了。

现在我想用 install4j 做一个安装程序。我无法将 java.exe 或 javaw.exe 用于简单链接。如果我这样做,安装时不会创建任何链接。在命中时我直接使用 JAR 文件,但我确信这不会在每台计算机上工作。

我在互联网上搜索了解决方案,但没有找到我想要的答案。

我应该通过 install4j(EXE 文件)创建一个启动器,还是应该使用批处理文件,还是有更好的方法?我认为最好的方法是与“javaw.exe -jar MyApp.jar”的简单链接?

0 投票
1 回答
520 浏览

wix - 在 install4j 中,您能否在一个安装包中同时包含 32 位和 64 位版本的应用程序,并让用户决定安装哪个版本?

在 install4j 中,您能否在一个安装包中同时包含 32 位和 64 位版本的应用程序,如果操作系统是 64 位,则让用户决定安装哪个版本?最简单/最好的解决方案是创建三个项目吗?即一个父母/两个孩子?我犹豫要不要这样做,因为大多数包含的文件都不是特定于体系结构的,我想将所有内容都保留在一个项目中。

如果其他安装程序可以完成此操作,我也不会绑定到 install4j,尤其是 WiX,它被我们公司的其他组使用。