2015-03-12 13 views
11

Sto installando SonarQube v5.0.1.SonarQube - La directory Temp non è scrivibile

Sono in esecuzione Windows Server 2012 64-bit, Java 1.8 64-bit e il wrapper Windows-x86-64 SonarQube.

SonarQube mantiene gettando il seguente errore:

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 

Perché SonarQube tenere cercando di scrivere in C: \ Windows \ System32 \ Config \ systemprofile \ AppData \ Local invece di C: \ Windows \ SysWOW64 \ config \ systemprofile \ AppData \ Local?

Per eliminare questo errore nelle installazioni precedenti, ho dovuto creare una cartella Temp in C: \ Windows \ System32 \ config \ systemprofile \ AppData \ Local e fiddle con le impostazioni di lettura/scrittura e/o le autorizzazioni per ottenere SonarQube per smettere di lamentarsi.

UPDATE: Questo è un problema enorme, perché non posso avviare SonarQube come servizio di Windows. La cosa strana è che SonarQube era già installato e funzionante come servizio Windows. Oggi ho interrotto il servizio e ora non posso più avviare il servizio. Ho impostato le autorizzazioni della cartella Temp per non essere di sola lettura e in modo che Everyone abbia il controllo completo (non ideale, lo so ...)

Ancora, l'errore Temp impedisce l'avvio di SonarQube.

risposta

1

Uguale al messaggio precedente SonarQube - Unable to load the Wrapper's native library 'wrapper.dll': è possibile verificare di disporre di un Java 64 bit installato, poiché sembra una versione a 32 bit.

+0

echo% JAVA_HOME% in Command Prompt dei rendimenti: C: \ Programmi \ Java \ jdk1.8.0_31 –

+0

non so se dovrei taggarti in modo che tu veda i miei commenti di risposta. –

+0

Ho trovato JavaHome nel registro in diversi punti. In una particolare sezione del registro, HKEY_LOCAL_MACHINE -> SOFTWARE -> Wow6432Node -> JavaSoft, ho trovato alcune chiavi JavaHome che puntano al percorso di un Java 1.8 a 32 bit. Non ho installato esplicitamente quella JVM, ma ho il sospetto che l'installazione di Java per Firefox, dal momento che quel browser è a 32 bit. –

10

Ho avuto lo stesso errore nel mio registro Sonar quando provavo ad avviare il servizio dopo averlo installato.

Avevo JAVA_HOME e x64 tutti impostati correttamente.

Sono riuscito a risolvere il problema nel registro di cui sopra da cambiando il "Accedi come" per il servizio installato a "SERVIZIO DI RETE" (senza password), quindi avviato il servizio. Per impostazione predefinita aveva impostato Accesso come sistema locale.

Probabilmente un'altra cosa degna di nota è che se si imposta SonarQube per la prima volta potrebbe essere meglio far funzionare il sito Web prima di installare il servizio, altrimenti il ​​debug è un po 'un problema.

+0

Questo ha funzionato per me, grazie. – boogieman

32

Questo può anche essere risolto impostando la proprietà java java.io.tmpdir in una directory scrivibile. per esempio, in conf/wrapper.conf cambiamento

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

a

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

Grazie! Questo ha funzionato, e la risposta accettata no! Lettore di avvertimenti. Anche se la cosa "giusta" da fare è aggiungere la riga 'wrapper.java.additional.2 = -Djava.io.tmpdir = E:/sonarqube-5.1/temp' poiché è un argomento della riga di comando separato dall'altra' - D' argomento. – dcsohl

+1

Grazie, ha funzionato. Ho aggiunto 'wrapper.java.additional.1 = -Djava.awt.headless = true -Djava.io.tmpdir = ../../temp' – Narayana

+0

Ho dovuto farlo dopo l'aggiornamento a 5.1.2 da 4.5.1 . Il servizio ha funzionato come previsto per molto tempo prima. Entrambe le versioni di servizio, 32 bit e 64 bit, hanno visualizzato l'errore menzionato nella domanda originale dopo l'aggiornamento. – noamik

0

ho avuto lo stesso problema di oggi con sonarqube 5.6 e Windows Server 2008 R2. Niente di quanto sopra ha funzionato per me, ma ciò che ha risolto il problema era la definizione di una variabile di sistema TMPDIR che puntava a un'altra directory temporanea, ad es. C: \ TMP

0

Ho avuto lo stesso errore durante l'esecuzione di alcune analisi del sonar. Si è scoperto che in wrapper.conf ho dovuto aggiungere

set.TMPDIR = c:/tmp

con il percorso della directory tmp esistente e di servizio naturalmente aveva bisogno di essere reinstallato (UninstallNTService.bat/InstallNTService.bat)

Problemi correlati