如何在app启动脚本中用环境变量替换硬编码的JAVA_HOME?

时间:2016-01-24 21:17:19

标签: java windows scripting startup

我需要将硬编码的java jre路径JAVA_HOME替换为所有应用程序中的环境变量' Windows 8服务器中的启动脚本。在脚本中,代码如下: 设置JAVA_HOME = c:\ program files(x86)\ java ...

这些脚本是conf文件。我之前没有使用过这个脚本,也不想搞砸应用程序。我知道在cmd中我可以调用set JAVA_HOME来获取环境变量的路径。有人可以告诉我如何在配置(在我的情况下是.conf)脚本中这样做吗?感谢。

编辑:让我在这里更具体一点。 Java服务是包装器,代码如下: 设置JAVA_HOME = C:\ Program Files(x86)\ Java \ jre1.8.0_51 wrapper.java.command =%JAVA_HOME%/ bin中/ JAVA

我应该只删除设置行,wrapper.java.command将获取正确的JAVA_HOME值。如果我不需要将JAVA_HOME设置为系统默认值的不同值,这是否正确,我不需要使用set?感谢。

1 个答案:

答案 0 :(得分:0)

不确定你是否能够做到这一点。

环境变量特定于命令shell解释器,这就是* nix shell可以使用不同语法的原因。

如果应用程序正在读取conf文件然后应用路径(即要使用的java路径),那么它必须准备好处理它而不是仅仅接受路径作为完全限定。

最好的办法可能是创建一个基础conf文件,其中包含%JAVA_HOME%(以及任何其他环境变量),然后生成具有实际完全限定路径的运行时conf文件。不确定哪种Windows工具最好,如果你有cygwin可能会更容易。

我不理解的是你为什么要指明它。大多数应用程序本身都会在环境中使用JAVA_HOME,因此如果您在全局设置它,应用程序应该只需要它,然后在conf文件中不需要任何内容​​。我想如果你有多个java安装,你需要在每个应用程序的基础上进行选择,但是在做任何其他事情之前,我将启动脚本设置为JAVA_HOME,然后再次从.conf中删除它并让app拿起来。