SonarQube-临时目录不可写

SonarQube-临时目录不可写,sonarqube,sonarqube-5.0,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\c

我正在安装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
WrapperSimpleApp:运行main:java.lang.IllegalStateException:Temp目录不可写时遇到错误:C:\Windows\system32\config\systemprofile\AppData\Local\Temp\
java.lang.IllegalStateException:临时目录不可写:C:\Windows\system32\config\systemprofile\AppData\Local\Temp\
位于org.sonar.process.MinimumViableSystem.checkWritableDir(MinimumViableSystem.java:60)
位于org.sonar.process.MinimumViableSystem.checkWritableTempDir(MinimumViableSystem.java:52)
位于org.sonar.process.MinimumViableSystem.check(MinimumViableSystem.java:45)
位于org.sonar.application.App.main(App.java:113)
在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处
位于sun.reflect.NativeMethodAccessorImpl.invoke(未知源)
在sun.reflect.DelegatingMethodAccessorImpl.invoke处(未知源)
位于java.lang.reflect.Method.invoke(未知源)
位于org.tanukisoftware.wrapper.WrapperSimpleApp.run(WrapperSimpleApp.java:240)
位于java.lang.Thread.run(未知源)
原因:java.io.IOException:系统找不到指定的路径
位于java.io.WinNTFileSystem.CreateFileExclusive(本机方法)
位于java.io.File.createTempFile(未知源)
位于org.sonar.process.MinimumViableSystem.checkWritableDir(MinimumViableSystem.java:57)
... 9更多

与前一条消息相同:您是否可以验证是否安装了Java 64位版本,因为它看起来是32位版本。

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

我的JAVA_HOME和x64都已正确设置

我通过将已安装服务的“登录身份”更改为“网络服务”(无密码),成功解决了上面日志中的问题,然后启动了服务。默认情况下,它已将登录设置为本地系统


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

这也可以通过将
java.io.tmpdir
java属性设置为可写目录来解决。 e、 例如,在
conf/wrapper.conf
change中

wrapper.java.additional.1=-Djava.awt.headless=true


今天我在sonarqube 5.6和Windows Server 2008 R2上遇到了同样的问题。以上这些对我都不起作用,但解决问题的方法是定义一个指向另一个临时目录的系统变量TMPDIR,例如C:\TMP

我在运行一些声纳分析时遇到了相同的错误。 事实证明,在wrapper.conf中,我必须添加

set.TMPDIR=c:/tmp


有了现有tmp目录的路径,当然还有需要重新安装的服务(UninstallNTService.bat/InstallNTService.bat)

对于Windows(特别是Windows 10),删除临时文件夹[声纳文件夹]下的文件,然后运行startSonar.bat。它应该可以工作。

echo%JAVA\u HOME%在命令提示符下产生:C:\Program Files\JAVA\jdk1.8.0\31不确定是否应该标记您以便您查看我的响应注释。我在注册表中的几个地方找到了JavaHome。在注册表的一个特定部分,HKEY_LOCAL_MACHINE->SOFTWARE->Wow6432Node->JavaSoft中,我发现一些JavaHome键指向32位Java1.8的路径。我没有明确安装JVM,但我怀疑安装Java for Firefox会安装JVM,因为该浏览器是32位的。然而,我遇到了另一个我发布的问题(无法加载包装器本机库dll)。因此,我卸载了32位包装,卸载了32位JRE,并安装了SonarQube 64位包装。这解决了.dll错误消息和临时文件夹错误消息。谢谢呃-现在我在Windows Server 2012 R2上遇到了与SonarQube 5.1完全相同的问题。我能够安装32位服务。我没有在服务器上安装32位JDK或JRE。注册表不包含指向32位JDK或JRE的路径。在注册表中提到JavaHome都指向我的64位JDK。我甚至将PATH环境变量设置为在值字段中首先列出%JDK\u HOME%\bin。这太荒谬了。SonarQube作为64位Windows服务安装应该不会这么难。是的,和往常一样,我首先测试StartSonar.bat,看看它是否有效。它起作用了。有什么建议吗?谢谢!这是有效的,而被接受的答案却没有!警告选择器。尽管如此,“正确”的做法是添加行
wrapper.java.additional.2=-Djava.io.tmpdir=E:/sonaqube-5.1/temp
,因为它是一个独立于另一个
-D
参数的命令行参数。谢谢,这很有效。我添加了
wrapper.java.additional.1=-Djava.awt.headless=true-Djava.io.tmpdir=../../temp
在从4.5.1升级到5.1.2之后,我不得不这样做。这项服务在很长一段时间前都按预期工作。32位和64位的服务版本在升级后都显示了原始问题中提到的错误。非常感谢!!2天来寻找这个答案。我无法在本地系统帐户下启动sonar作为服务。临时目录所在的驱动器是共享驱动器。这解决了问题。
wrapper.java.additional.1=-Djava.awt.headless=true -Djava.io.tmpdir=E:/sonarqube-5.1/temp