我正在运行一个我们作为服务器端系统分发的 java 应用程序。我正在尝试编写一个启动器(“写”在这里有点夸大其词,我基本上只是复制 Java.exe 文件,以便我们可以在 Windows 的进程资源管理器中获得所需的名称)。这个 exe 在我们的应用程序文件树的 bin/ 目录中。
现在,我们的文件树中还有一个 jre/ 目录,这是 Java.exe 实际所在的位置(我们将产品与 Java 环境一起发布)。当我使用位于 \jre\jre1.6.0_21\bin 中的 Java.exe 作为启动器时,或者如果我将副本(称为此可执行文件“Orange.exe”)放在此目录中,它工作得很好. 但是,如果我将“Orange.exe”放在 bin\ 目录中,则会出现以下错误:
Error: no 'server' JVM at 'C:\Program Files\Java\jre6\bin\server\jvm.dll'
我想我明白这里发生了什么——我想使用 jvm.dll 文件的服务器版本,它位于我们的 jre 目录中。问题是,我不明白为什么它不在我的应用程序路径中的 jre\jre1.6.0_21 目录中查找。我已将我的 JAVA_HOME 环境变量设置为此位置。似乎它默认为另一个系统范围的预期位置。
有谁知道我可以如何更改它,以便它在我的应用程序提供的 java 环境目录中查找?理想情况下,这将是一个环境变量,因为我需要使用批处理文件使用参数调用此应用程序。