SonarQube - каталог Temp не доступен для записи

Я устанавливаю SonarQube v5.0.1.

Я запускаю 64-разрядную версию Windows Server 2012, 64-разрядную версию Java 1.8 и оболочку windows-x86-64 для SonarQube.

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?

Чтобы избавиться от этой ошибки в предыдущих установках, мне пришлось создать папку Temp в C:\Windows\System32\config\systemprofile\AppData\Local и использовать параметры чтения/записи и/или разрешения для получения SonarQube перестает жаловаться.

ОБНОВЛЕНИЕ: Это огромная проблема, потому что я не могу запустить SonarQube в качестве службы Windows. Что странно, что у меня уже был установлен SonarQube и работает как служба Windows. Сегодня я остановил службу, и теперь я больше не могу запускать эту услугу. Я установил разрешения папки Temp не только для чтения и так, чтобы у каждого был полный доступ (не идеальный, я знаю...)

Тем не менее, ошибка Temp предотвращает запуск SonarQube.

Ответ 2

Это также можно устранить, установив свойство java.io.tmpdir java в записываемый каталог. например, в conf/wrapper.conf изменить

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

to

wrapper.java.additional.1=-Djava.awt.headless=true -Djava.io.tmpdir=E:/sonarqube-5.1/temp

Ответ 3

У меня была такая же ошибка в моем журнале сонара при попытке запустить службу после того, как я ее установил.

Я правильно настроил JAVA_HOME и x64.

Мне удалось решить проблему в журнале выше, нажав изменить "Вход в систему" ​​для установленной службы на "СЕТЕВОЕ ОБСЛУЖИВАНИЕ" (без пароля), а затем запустил службу. По умолчанию он установил Log In To to Local System.

Возможно, стоит упомянуть еще одну вещь: если вы впервые создаете SonarQube, лучше всего заставить сайт работать перед установкой службы, иначе отладка немного боль.

Ответ 4

У меня была такая же проблема сегодня с sonarqube 5.6 и Windows Server 2008 R2. Ничто из выше сказанного не работало для меня, а то, что исправляло проблему, заключалось в определении системной переменной TMPDIR, указывающей на другой временный каталог, например. C:\TMP

Ответ 5

У меня была такая же ошибка при запуске некоторого анализа сонара. Оказалось, что в wrapper.conf мне пришлось добавить

set.TMPDIR = C:/TMP

с путём к существующему каталогу tmp и конечному сервису, который необходимо переустановить (UninstallNTService.bat/InstallNTService.bat)

Ответ 6

В случае Windows (в частности, Windows 10) удалите файл из временной папки [в папках сонара] и запустите startSonar.bat. Он должен работать.