SonarQube - 临时目录不可写

Chr*_*ris 11 sonarqube sonarqube-5.0

我正在安装SonarQube v5.0.1.

我正在运行Windows Server 2012 64位,Java 1.8 64位和SonarQube windows-x86-64包装器.

SonarQube不断抛出以下错误:

WrapperSimpleApp: Encountered an error running main: java.lang.IllegalStateException: Temp directory is not writable: C:\Windows\system32\config\systemprofile\AppData\Local\Temp\
java.lang.IllegalStateException: Temp directory is not writable: C:\Windows\system32\config\systemprofile\AppData\Local\Temp\
    at org.sonar.process.MinimumViableSystem.checkWritableDir(MinimumViableSystem.java:60)
    at org.sonar.process.MinimumViableSystem.checkWritableTempDir(MinimumViableSystem.java:52)
    at org.sonar.process.MinimumViableSystem.check(MinimumViableSystem.java:45)
    at org.sonar.application.App.main(App.java:113)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.tanukisoftware.wrapper.WrapperSimpleApp.run(WrapperSimpleApp.java:240)
    at java.lang.Thread.run(Unknown Source)
Caused by: java.io.IOException: The system cannot find the path specified
    at java.io.WinNTFileSystem.createFileExclusively(Native Method)
    at java.io.File.createTempFile(Unknown Source)
    at org.sonar.process.MinimumViableSystem.checkWritableDir(MinimumViableSystem.java:57)
    ... 9 more
<-- Wrapper Stopped
Run Code Online (Sandbox Code Playgroud)

为什么SonarQube会继续尝试写入C:\ Windows\System32\config\systemprofile\AppData\Local而不是C:\ Windows\SysWOW64\config\systemprofile\AppData\Local?

要在以前的安装中摆脱这个错误,我必须在C:\ Windows\System32\config\systemprofile\AppData\Local中创建一个Temp文件夹,并调整读/写设置和/或权限以使SonarQube停止抱怨.

更新:这是一个很大的问题,因为我无法启动SonarQube作为Windows服务.奇怪的是,我已经安装了SonarQube并作为Windows服务运行.今天,我停止了服务,现在我再也无法启动服务了.我已将Temp文件夹的权限设置为不只读,以便Everyone具有完全控制权(不太理想,我知道......)

但是,Temp错误会阻止SonarQube启动.

Tom*_*ard 32

这也可以通过将java.io.tmpdirjava属性设置为可写目录来修复.例如,在conf/wrapper.conf变化中

wrapper.java.additional.1=-Djava.awt.headless=true
Run Code Online (Sandbox Code Playgroud)

wrapper.java.additional.1=-Djava.awt.headless=true -Djava.io.tmpdir=E:/sonarqube-5.1/temp
Run Code Online (Sandbox Code Playgroud)

  • 谢谢!这工作,并且接受的答案没有!警告讲师.虽然,"正确"的事情是添加行'wrapper.java.additional.2 = -Djava.io.tmpdir = E:/ sonarqube-5.1/temp`,因为它是另一个` - 的单独命令行参数D`论点. (2认同)

Sea*_*ins 10

在我安装它之后尝试启动服务时,我的声纳日志中出现了同样的错误.

我已经正确设置了JAVA_HOME和x64.

我设法通过将已安装服务的"登录身份"更改为"网络服务"(无密码)来解决上述日志中的问题,然后启动该服务.默认情况下,它已将Log On As设置为Local System.

可能另外值得一提的是,如果您是第一次设置SonarQube,最好在安装服务之前让网站正常工作,否则调试会有点痛苦.