2016-04-05 13 views
3

Ich habe gerade Gradle 2.11 auf einem Windows 7-Rechner installiert, und wenn ich gradle -v starte, erhalte ich eine Fehlernachricht. Gradle ist im Pfad und die DLL ist vorhanden.Gradle Ausnahme Fehler beim Laden der systemeigenen Bibliothek native-platform.dll

$ gradle -v --stacktrace 

FAILURE: Build failed with an exception. 

* What went wrong: 
Failed to load native library 'native-platform.dll' for Windows 7 amd64. 

* Try: 
Run with --info or --debug option to get more log output. 

* Exception is: 
net.rubygrapefruit.platform.NativeException: Failed to load native library 'nati          ve-platform.dll' for Windows 7 amd64. 
     at net.rubygrapefruit.platform.internal.NativeLibraryLoader.load(NativeL          ibraryLoader.java:49) 
     at net.rubygrapefruit.platform.Native.init(Native.java:55) 
     at org.gradle.internal.nativeintegration.services.NativeServices.initial          ize(NativeServices.java:74) 
     at org.gradle.internal.nativeintegration.services.NativeServices.initial          ize(NativeServices.java:60) 
     at org.gradle.launcher.cli.CommandLineActionFactory$WithLogging.execute(          CommandLineActionFactory.java:203) 
     at org.gradle.launcher.cli.CommandLineActionFactory$WithLogging.execute(          CommandLineActionFactory.java:169) 
     at org.gradle.launcher.cli.ExceptionReportingAction.execute(ExceptionRep          ortingAction.java:33) 
     at org.gradle.launcher.cli.ExceptionReportingAction.execute(ExceptionRep          ortingAction.java:22) 
     at org.gradle.launcher.Main.doAction(Main.java:33) 
     at org.gradle.launcher.bootstrap.EntryPoint.run(EntryPoint.java:45) 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.          java:62) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces          sorImpl.java:43) 
     at java.lang.reflect.Method.invoke(Method.java:497) 
     at org.gradle.launcher.bootstrap.ProcessBootstrap.runNoExit(ProcessBoots          trap.java:54) 
     at org.gradle.launcher.bootstrap.ProcessBootstrap.run(ProcessBootstrap.j          ava:35) 
     at org.gradle.launcher.GradleMain.main(GradleMain.java:23) 
Caused by: java.io.IOException: The system cannot find the path specified 
     at java.io.WinNTFileSystem.createFileExclusively(Native Method) 
     at java.io.File.createNewFile(File.java:1012) 
     at net.rubygrapefruit.platform.internal.NativeLibraryLocator.find(Native          LibraryLocator.java:39) 
     at net.rubygrapefruit.platform.internal.NativeLibraryLoader.load(NativeL          ibraryLoader.java:41) 
     ... 16 more 

Antwort

3

Dies wird durch Windows-Konfiguration verursacht, wahrscheinlich durch Gruppenrichtlinien. Die Datei native-platform.dll wird aus einer der JAR-Dateien extrahiert und möglicherweise in einem Ordner im Benutzer-Ausgangsverzeichnis abgelegt, z. B. c: \ Benutzer \% BENUTZERNAME% \ Lokale Einstellungen \ Temp. Zum Schutz vor Malware kann das Laden von DLLs und die Ausführung von Programmen aus TMP-Verzeichnissen deaktiviert werden.

Ich habe ein Problem mit den gleichen Symptomen, und ich konnte in einigen Fällen umgehen, indem TEMP und TMP-Umgebungsvariablen außerhalb des Benutzerverzeichnisses, wie c: \ tmp zeigen. Das war keine universelle Lösung und funktionierte nicht für Großbuchstaben. Der Speicherort, an dem Gradle DLLs extrahiert, kann überschrieben werden, indem GRADLE_OPTS auf den gewünschten Speicherort festgelegt wird. Dies kann für Sie arbeiten:

C: \ mkdir C: \ tmp

C: \ set GRADLE_OPTS = "- Dorg.gradle.native.dir =/tmp"

0

In adition, Sie haben um den Satz in die Datei gradle.bat zu setzen, die sich im Ordner ../gradle-2.11/bin befindet.

Beispiel:

@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. 
set DEFAULT_JVM_OPTS= 

set DIRNAME=%~dp0 
if "%DIRNAME%" == "" set DIRNAME=. 
set APP_BASE_NAME=%~n0 
set APP_HOME=%DIRNAME%.. 

@rem agregado por marcgaso 
set GRADLE_OPTS="-Dorg.gradle.native.dir=/tmp" 
**strong text** 
Verwandte Themen