将类路径添加到具有环境变量的install4j vmoptions文件

将类路径添加到具有环境变量的install4j vmoptions文件,install4j,Install4j,我使用的是Install4J 6.1.5,我正在尝试使用手动构造的vmoptions文件和稍微记录的-classpath/a vmoptions文件指令修改类路径 似乎-classpath/a和-classpath/p选项不支持包含环境变量的路径,至少在linux启动器中是这样。当我包括: -classpath/a ${HOME}/.ssheena-server/resources 对于vmoptions文件,${HOME}在我使用ps-ef查看java进程时以其“未更改的形式出现在启动器中”

我使用的是Install4J 6.1.5,我正在尝试使用手动构造的vmoptions文件和稍微记录的-classpath/a vmoptions文件指令修改类路径

似乎-classpath/a和-classpath/p选项不支持包含环境变量的路径,至少在linux启动器中是这样。当我包括:

-classpath/a ${HOME}/.ssheena-server/resources
对于vmoptions文件,${HOME}在我使用ps-ef查看java进程时以其“未更改的形式出现在启动器中”-classpath参数出现:

-classpath /opt/bids/ssheena-server/.install4j/i4jruntime.jar:${HOME}/.ssheena-server/resources

是否有一种方法可以使用-classpath/a来支持使用环境变量?

从install4j 6.1.5开始,不支持在.vmoptions文件的类路径修改中替换环境变量

您可以使用安装程序中的操作修改.vmoptions文件。例如,您可以使用安装程序变量语法

${installer:sys.userHome}

在.vmoptions文件中,并使用“在文本文件中替换安装程序变量”操作在运行时替换它。

从install4j 6.1.5开始,不支持在.vmoptions文件的类路径修改中替换环境变量

您可以使用安装程序中的操作修改.vmoptions文件。例如,您可以使用安装程序变量语法

${installer:sys.userHome}

在.vmoptions文件中,并使用“替换文本文件中的安装程序变量”操作在运行时替换它。

Hi Ingo!谢谢你的及时回复。在本例中,我使用的是在RPM部署期间手动构建的vmoptions文件,该文件对安装程序运行时操作的访问权限有限。另外,对于上面列出的示例,我确实希望类路径反映调用者的$HOME目录,这将随调用启动器的用户而变化。好的,我理解。不幸的是,使用POSIX Bourne shell很难在从文件读取的字符串中替换环境变量定义。在RPM媒体文件向导中,您可以使用“安装程序选项->安装后脚本”步骤以绝对路径写入或修改.vmoptions文件。这将不起作用-$HOME变量为每个用户-RPM文件必须为正在安装的计算机上的每个用户创建或修改vmoptions文件。显然,有一个用例可以将每个用户的资源添加到由启动器组装的类路径中,而到目前为止,您所建议的任何工作都不会处理这个用例。在POSIX启动器代码中,您只需对生成的启动路径进行回显:
echo-classpath$local_classpath
以实现所需的效果,对吗?如本例所示:$INSTALL4J_JAVA_PREFIX exec“$app_JAVA_home/bin/JAVA”-Dinstall4j.jvmDir=“$app_JAVA_home”-Dexe4j.moduleName=“$prg_dir/$progname”“-Dinstall4j.launcher=105”“-Dinstall4j.swt=false”“$vmov_1”“$vmov_2”“$vmov_3”“$vmov_4”“$vmov_5”“$INSTALL4J_ADD_VM_PARAMS-classpath”`echo$local_classpath`“com.INSTALL4J.runtime.launcher.UnixLauncher运行重定向36df8614”“”“com.bids.ssheena.server.main我看到了这个用例,但是这些特性很难实现,因为它们跨越了多个特定于平台的启动器。我认为你必须在你的应用程序中使用类加载器。“只是做一个回声”不幸的是没有,见你好英戈!谢谢你的及时回复。在本例中,我使用的是在RPM部署期间手动构建的vmoptions文件,该文件对安装程序运行时操作的访问权限有限。另外,对于上面列出的示例,我确实希望类路径反映调用者的$HOME目录,这将随调用启动器的用户而变化。好的,我理解。不幸的是,使用POSIX Bourne shell很难在从文件读取的字符串中替换环境变量定义。在RPM媒体文件向导中,您可以使用“安装程序选项->安装后脚本”步骤以绝对路径写入或修改.vmoptions文件。这将不起作用-$HOME变量为每个用户-RPM文件必须为正在安装的计算机上的每个用户创建或修改vmoptions文件。显然,有一个用例可以将每个用户的资源添加到由启动器组装的类路径中,而到目前为止,您所建议的任何工作都不会处理这个用例。在POSIX启动器代码中,您只需对生成的启动路径进行回显:
echo-classpath$local_classpath
以实现所需的效果,对吗?如本例所示:$INSTALL4J_JAVA_PREFIX exec“$app_JAVA_home/bin/JAVA”-Dinstall4j.jvmDir=“$app_JAVA_home”-Dexe4j.moduleName=“$prg_dir/$progname”“-Dinstall4j.launcher=105”“-Dinstall4j.swt=false”“$vmov_1”“$vmov_2”“$vmov_3”“$vmov_4”“$vmov_5”“$INSTALL4J_ADD_VM_PARAMS-classpath”`echo$local_classpath`“com.INSTALL4J.runtime.launcher.UnixLauncher运行重定向36df8614”“”“com.bids.ssheena.server.main我看到了这个用例,但是这些特性很难实现,因为它们跨越了多个特定于平台的启动器。我认为你必须在你的应用程序中使用类加载器。“只是做一个回声”不幸的是没有,看到了吗