我正在安装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
为什么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启动。
答案 0 :(得分:32)
这也可以通过将java.io.tmpdir
java属性设置为可写目录来解决。
例如,在conf/wrapper.conf
更改
wrapper.java.additional.1=-Djava.awt.headless=true
到
wrapper.java.additional.1=-Djava.awt.headless=true -Djava.io.tmpdir=E:/sonarqube-5.1/temp
答案 1 :(得分:10)
我安装后尝试启动服务时,我的声纳日志中出现了同样的错误。
我已经正确设置了JAVA_HOME和x64。
我设法通过更改&#39;登录为&#39;来解决上述日志中的问题。对于已安装的服务&#39; NETWORK SERVICE&#39; (没有密码),然后启动该服务。默认情况下,它已将登录设置为本地系统。
另外值得一提的是,如果您第一次设置SonarQube,最好在安装服务之前让网站正常工作,否则调试会有点麻烦。
答案 2 :(得分:1)
与上一条消息SonarQube - Unable to load the Wrapper's native library 'wrapper.dll'相同:您可以验证是否安装了Java 64位,因为它看起来是32位版本。
答案 3 :(得分:0)
今天我和sonarqube 5.6和Windows Server 2008 R2有同样的问题。上面没有任何内容对我有用,但解决了问题的是定义了一个指向另一个临时目录的系统变量TMPDIR ,例如: C:\ TMP
答案 4 :(得分:0)
运行一些声纳分析时遇到了同样的错误。 事实证明,在wrapper.conf中我必须添加
set.TMPDIR = C:/ TMP
带有现有tmp目录的路径,当然还需要重新安装服务(UninstallNTService.bat / InstallNTService.bat)
答案 5 :(得分:0)
在Windows(特别是Windows 10)的情况下,删除temp文件夹下的文件(在声纳文件夹下),然后运行 startSonar.bat 。应该可以。