我正在为一个需要Apache Tomcat 8作为Windows服务的程序制作一个NSIS安装程序。JAVA_HOME被设置为NSIS安装程序脚本中的环境变量,我制作了Powershell脚本文件来处理Tomcat特定的变量(CATALINA_HOME, JvmMX, JvmArgs
),并在最后运行service.bat install
。
当我独立运行下面的Powershell脚本(设置了JAVA_HOME环境变量)时,service.bat install
会安装Tomcat服务,并找到正确的JAVA_HOME
路径。
我依靠psExec.nsh插件来执行Powershell脚本(${PowerShellExecFileLog}
)
我似乎找不到发生这种情况的原因......任何帮助都将非常感谢!我唯一的猜测是,它与32位/64位有关。我确信我错了,所以请纠正我,但我的想法是:系统是64位的,JAVA_HOME
环境变量是64位的,但安装程序是32位的,这使得它调用的Powershell是32位的,因此Powershell无法检索64位环境变量。
以下是相关的代码片段:
第一个
1条答案
按热度按时间s4n0splo1#
写入注册表不会影响安装程序和可能启动的任何子进程,您还应该更新安装程序进程本身: