4

我正在安装 SonarQube v5.0。

我正在运行 Windows Server 2012 64 位(虚拟操作系统)、Java 1.8 64 位和 SonarQube windows-x86-64 包装器。

SonarQube,无论是通过 StartSonar.bat 以管理员身份使用命令提示符还是作为 Windows 服务运行,都会不断抛出以下警告:

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:\sonarqube-5.0.1\bin\windows-x86-64\.\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.
      One common cause of this problem is running a 32-bit version
      of the Wrapper with a 64-bit version of Java, or vica versa.
      This is a 32-bit JVM.
      Reported cause:
        C:\sonarqube-5.0.1\bin\windows-x86-64\lib\wrapper.dll: Can't load AMD 64-bit .dll on a IA 32-bit platform
      System signals will not be handled correctly.

我在网上找到的唯一信息是 2010 年的一些 JIRA,它们并没有真正帮助我。我无法在此 Windows 安装上创建声纳用户。我的 CI 环境中的所有其他工具都在 Java 1.8 64 位上运行,这意味着 JAVA_HOME 设置为 JDK 1.8 64 位。我真的不想运行 Java 32 位和 32 位 Wrapper。这意味着 wrapper.conf 顶部的 JRE bin/java 路径必须指定 32 位 JRE。

我能做些什么来摆脱这个警告?

4

4 回答 4

7

并非所有应用程序都使用 JAVA_HOME 变量,因此您可以在使用 32 位时让 JAVA_HOME 指向您的 64 位版本。注意:注册表中的“Java_Home”键不是 JAVA_HOME 变量。

好吧,可以确定的一种方法是使用 ..\windows-x86-64\UninstallNTService.bat 卸载当前服务,并使用 ..\windows-x86-32\InstallNTService.bat 安装 32 位版本。

如果它有效,那么您肯定拥有一个 32 位 JVM。

于 2015-03-16T07:48:12.090 回答
0

我在 Windows 7 上使用 SonarQube 5.6.4 时遇到了同样的问题。编辑 sonar.properties 文件以添加 wrapper.java.command=... 没有效果。不过,编辑我的路径语句就可以了。

我的路径语句中的前两个文件夹是

C:\ProgramData\Oracle\Java\javapath;C:\dev\sdks\jdk1.8.0_112\bin;....

第一个 (C:\ProgramData\Oracle\Java\javapath) 中的 java.exe 是 32 位的。我刚刚在我的路径中切换了两个:

C:\dev\sdks\jdk1.8.0_112\bin;C:\ProgramData\Oracle\Java\javapath;...

突然 SonarQube 开始使用 C:\dev\sdks\jdk1.8.0_112\bin 中的 64 位 java.exe

进行此更改后,我能够毫无困难地重新启动 Firefox。

于 2017-01-11T05:32:54.370 回答
0

在 \sonarqube-5.1.2\bin\windows-x86-64 中安装了服务 SonarQube。

我刚刚去了Windows服务中的SonarQube——>转到属性——>登录选项卡——>选择“本地服务”(输入系统密码)。而已!

问题已解决。

希望这对无法从上述帖子中解决的人有所帮助。

于 2015-08-26T19:41:06.837 回答
0

就我而言,在窗口 7 或窗口 10 上的 SonarQube 7.3 上运行,我必须将 Java 版本更新为 java 8 才能传递此错误。

于 2018-08-30T17:57:41.820 回答