2016-04-05 13 views
3

Bir Windows 7 makinesinde Gradle 2.11'i yeni yükledim ve gradle -v'yi çalıştırdığımda bir hata iletisi alıyorum. Gradle yolda ve dll mevcut.Gradle exception Yerel kütüphane native-platform.dll yüklenemedi

$ 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 

cevap

3

Bu, Windows yapılandırması nedeniyle, muhtemelen grup ilkesi aracılığıyla gerçekleşir. Dosya native-platform.dll JAR dosyalarından birinden çıkarılır ve büyük olasılıkla c: \ Users \% USERNAME% \ Local Settings \ Temp gibi kullanıcı giriş dizinindeki klasöre yerleştirilir. Kötü amaçlı yazılım koruması için DLL'lerin yüklenmesi ve TMP dizinlerinden programların yürütülmesi devre dışı bırakılabilir.

Aynı belirtilerle ilgili bir sorunum var ve bazı durumlarda, TEMP ve TMP ortam değişkenlerini c: \ tmp gibi kullanıcı dizininin dışına işaret edecek şekilde ayarlayabildim. Bu evrensel bir çözüm olmamıştır ve kürek için işe yaramadı. Gradle'ın DLL'leri çıkardığı konum, GRADLE_OPTS öğesinin istenen konuma işaret etmesi ayarlanarak üzerine yazılabilir. Bu sizin için işe yarayabilir:

C: \ mkdir C: \ tmp

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

0

, sahip set cümlesini ../gradle-2.11/bin klasöründe bulunan gradle.bat dosyasına koymak.

Örnek:

@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**