1

我已经看到了这个问题的一些答案,但它似乎对我不起作用。我在“bin”中有“client”文件夹,其中包含这样一个文件(在 Program Files x86 中)但是当我将 JAVA_HOME 变量设置为此 java 文件夹时,每当我尝试启动服务时它都会显示此错误(我正在尝试将 Atlassian Fisheye 作为服务运行)。我尝试复制“客户端”文件夹的内容并创建一个“服务器”文件夹,但随后错误发生了变化

Error occurred during initialization of VM, Could not reserve enough space for object heap, Could not create the Java Virtual Machine, A fatal exception has occurred. Program will exit.

如果我也安装了 64 位版本的 Java,我有这个“服务器”文件夹,我尝试复制该文件夹但仍然没有用。如果我将 JAVA_HOME 路径更改为该 64 位 java 文件夹,则服务已成功启动(或者看起来如此),但我无法访问 Fisheye 并且出现警告:

WARNING - Unable to load the Wrapper's native library 'wrapper.dll'. The file is located on the path at the following location but could not be loaded: C:\installs\service\fisheye28\wrapper\lib\wrapper.dll. Please verify that the file is readable by the current user and that the file has not been corrupted in any way. System signals will not be handled correctly.

根据这里的指南,如果我们使用 64 位 java,就会发生这种情况,即使它是 64 位机器,我们也必须使用 32 位。所以,我被困在这些问题之间。如果我使用 64 位版本,“服务器”错误就消失了,但是出现了这个警告,我无法访问 Fisheye。如果我使用 32 位,则找不到“服务器:文件夹”,即使我复制文件并创建文件夹,该服务仍然无法运行。

4

2 回答 2

1

我知道这个问题已经很老了。但我会尝试解释什么对我有用:

我尝试复制“客户端”文件夹的内容并创建一个“服务器”文件夹,但随后错误发生了变化

许多用户在类似的问题中认为该技巧很有用。但是,您不能将 Java 客户端用作 Java 服务器。

在这个答案(https://stackoverflow.com/a/198651/7597328)中,您可以看到原因。基本上:

  • 服务器 VM 已经过专门调整,以最大限度地提高峰值运行速度。
  • 服务器 VM 包含一个高级自适应编译器,它支持许多由优化 C++ 编译器执行的相同类型的优化,以及一些传统编译器无法完成的优化。

我找到的解决方案是从以下位置下载 Java 服务器: http ://www.oracle.com/technetwork/java/javase/downloads/server-jre7-downloads-1931105.html

然后我将服务器文件夹添加到 ...\Java\jre7\bin\

于 2017-02-23T11:32:28.643 回答
0

AFAIK JAVA_HOME 应该指向 jre 的安装目录,而不是指向包含 jvm.dll 的文件夹。

所以尝试将 JAVA_HOME 设置为 bin 文件夹的父目录...

于 2013-08-12T13:42:18.747 回答