在“ ...”处没有“服务器” JVM


问题内容

我正在运行一个Java应用程序,我们将其作为服务器端系统进行分发。我正在尝试编写启动器(这里的“写”有点夸张,我基本上只是复制Java.exe文件,以便我们可以在Windows的进程浏览器中获得所需的名称)。该exe位于应用程序文件树的bin
/目录中。

现在,我们在文件树中还有一个jre
/目录,这是Java.exe实际所在的位置(我们将产品与Java环境一起交付)。当我使用Java.exe作为启动器时,位于\ jre \
jre1.6.0_21 \ bin中,或者如果我将复制的文件(称为此可执行文件“ Orange.exe”)放在此目录中,则可以正常运行。但是,如果我将“
Orange.exe”放入bin \目录,则会收到以下错误:

Error: no 'server' JVM at 'C:\Program Files\Java\jre6\bin\server\jvm.dll'

我想我了解这里发生的事情-我想使用jvm目录中的jvm.dll文件的服务器版本。问题是,我不明白为什么它不在我的应用程序路径的jre \
jre1.6.0_21目录中查找。我已将JAVA_HOME环境变量设置为此位置。似乎它默认为系统范围内的另一个预期位置。

有谁知道我可以如何更改它,以使其在我的应用程序提供的java环境目录中显示?理想情况下,这将是一个环境变量,因为我需要使用批处理文件使用参数调用此应用程序。


问题答案:

有一个小技巧可以启动并运行服务器JVM:

  1. 从JDK的JRE的bin文件夹示例中复制“ server”文件夹: C:\Program Files\Java\jdk1.6.0\jre\bin\server
  2. 将“ server”文件夹粘贴到JRE的bin文件夹示例中: C:\Program Files\Java\jre1.6.0\bin
  3. 完成了

有关详细信息,请参见官方自述文件