GeoTools OGR Plugin - UnsatrifiedLinkerror (Ogrji oder Gdalalljni)Java

Java-Forum
Guest
 GeoTools OGR Plugin - UnsatrifiedLinkerror (Ogrji oder Gdalalljni)

Post by Guest »

Ich arbeite mit Geotools, aber ich kann GDAL für das OGR -Plugin nicht richtig einrichten. Nach der vagen Dokumentation für das OGR -Plugin muss ich GDAL 3.2 oder älter verwenden. 'gdalalljni'. Und es fehlt in Version 2.2.3. Wenn ich jedoch stattdessen Version 3.1.4 verwende, erhalte ich eine unbefriedigende Linkerror für 'ogrjni', die in dieser Version korrekt fehlt. Es scheint, als würde Version 2.2.3 die 'gdalalljni.dll' fehlen, die in späteren Versionen hinzugefügt wurde, dann stattdessen die 'ogrjni.dll' entfernt. von der Verwendung 3.1.4: < /p>
Native library load failed.
java.lang.UnsatisfiedLinkError: no ogrjni in java.library.path: [C:\Program Files\Java\jdk-11\bin, C:\WINDOWS\Sun\Java\bin, C:\WINDOWS\system32, C:\WINDOWS, C:\Program Files\Microsoft SDKs\Azure\CLI2\wbin, C:\Program Files (x86)\Common Files\Oracle\Java\javapath, C:\WINDOWS\system32, C:\WINDOWS, C:\WINDOWS\System32\Wbem, C:\WINDOWS\System32\WindowsPowerShell\v1.0\, C:\WINDOWS\System32\OpenSSH\, C:\Program Files\dotnet\, C:\Program Files\nodejs\, C:\Program Files\Microsoft SQL Server\150\Tools\Binn\, C:\Program Files\Microsoft SQL Server\Client SDK\ODBC\170\Tools\Binn\, C:\Program Files\PowerShell\7\, C:\Program Files\PuTTY\, C:\Program Files\RedHat\Podman\, C:\gdal-314\bin\gdal\java, C:\gdal-314\bin, C:\gdal-314\bin\gdal\apps, C:\aliases, C:\Users\sehe\AppData\Local\Programs\Git\cmd, C:\Users\sehe\AppData\Local\Programs\oh-my-posh\bin, C:\Users\sehe\AppData\Roaming\pypoetry\venv\Scripts, C:\Users\sehe\AppData\Local\Programs\Microsoft VS Code\bin, C:\Users\sehe\AppData\Roaming\npm, C:\Program Files\Azure Data Studio\bin, C:\Users\sehe\AppData\Local\Microsoft\WindowsApps, C:\Users\sehe\AppData\Local\Programs\EmEditor, C:\Users\sehe\AppData\Local\Pandoc\, C:\Users\sehe\AppData\Local\Programs\Gpg4win\..\GnuPG\bin, C:\Users\sehe\AppData\Roaming\Programs\Zero Install, C:\Users\sehe\.dotnet\tools, C:\grails-4.1.4\bin, ., .]
Caught: java.lang.UnsatisfiedLinkError: org.gdal.ogr.ogrJNI.GetDriverCount()I
java.lang.UnsatisfiedLinkError: org.gdal.ogr.ogrJNI.GetDriverCount()I
at org.gdal.ogr.ogrJNI.GetDriverCount(Native Method)
at org.gdal.ogr.ogr.GetDriverCount(ogr.java:114)
at org.geotools.data.ogr.jni.JniOGR.(JniOGR.java:88)
at org.geotools.data.ogr.jni.JniOGRDataStoreFactory.createOGR(JniOGRDataStoreFactory.java:32)
at org.geotools.data.ogr.OGRDataStoreFactory.getAvailableDrivers(OGRDataStoreFactory.java:285)
at GeotoolsTest.run(GeotoolsTest.groovy:12)
< /code>
Dies ist der Beispielcode, der fehlschlägt (groovy): < /p>
import org.geotools.data.ogr.OGRDataStoreFactory
import org.geotools.data.ogr.jni.JniOGRDataStoreFactory

OGRDataStoreFactory factory = new JniOGRDataStoreFactory()
for (String driver : factory.getAvailableDrivers()) {
System.out.println(driver);
}
< /code>
Und hier ist meine BuildFile: < /p>
plugins {
id 'groovy'
}

group 'org.example'
version '1.0-SNAPSHOT'

repositories {
mavenCentral()
maven { url "https://repo.osgeo.org/repository/geotools-releases/" }
maven { url "https://packages.atlassian.com/maven-3rdparty/" }
}

dependencies {
implementation 'org.apache.groovy:groovy-all:4.0.14'

implementation group: 'org.geotools', name: 'gt-main', version: '32.1'
implementation group: 'org.geotools', name: 'gt-ogr-core', version: '32.1'
implementation group: 'org.geotools', name: 'gt-ogr-jni', version: '32.1'
}

test {
useJUnitPlatform()
}

configurations.all {

resolutionStrategy.eachDependency { DependencyResolveDetails details ->
if (details.requested.group == 'javax.media') {
if (details.requested.name == 'jai_core') {
details.useTarget group: 'javax.media', name: 'jai-core', version: details.requested.version
}
}
}
}
< /code>
Ich habe diesen Fehler stundenlang gegoogelt, und alle Quellen sagen mir immer wieder, dass ich meinen Pfad überprüfen soll. Ich bin mir ziemlich sicher, dass es korrekt eingerichtet ist. Und in jedem Fall sind das Problem die fehlenden DLLs aus den Binärdateien. Aber um sicher zu sein, hier sind meine Umgebungsvariablen: < /p>
Gdal_Sdk_root = C: \ Gdal-314
Gdal_Data = %Gdal_Sdk_root %\ bin \ gdal-data < /p>
path =%Gdal_Sdk_root%\ bin \ gdal \ java;%Gdal_Sdk_root%\ bin;%Gdal_Sdk_Root%\ bin \ gdal \ apps < /p>
dankt für jede Hilfe!

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post