Я работаю с Geotools, но я не могу правильно настроить GDAL для плагина OGR. Согласно расплывчатой документации для плагина OGR, мне нужно использовать GDAL 3.2 или старше. 'gdalalljni'. И он отсутствует в версии 2.2.3. Однако, когда я вместо этого использую версию 3.1.4, я получаю неудовлетворенную племянницу для «Ogrjni», который правильно отсутствует в этой версии. Похоже, что в версии 2.2.3 отсутствует «gdalalljni.dll», которая была добавлена в более поздних версиях, но затем удалил «ogrjni.dll». Из использования 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>
Это пример кода, который снят (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>
И вот мой 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>
Я гуглил эту ошибку в течение нескольких часов, и все источники продолжают говорить мне, чтобы проверить мой путь, который, как я уверен, настроена правильно. И в любом случае, проблема заключается в недостающих DLL из двоичных файлов. Но просто чтобы быть уверенным, вот переменные моей среды: < /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>
Благодарный за любую помощь!
Подробнее здесь: https://stackoverflow.com/questions/794 ... gdalalljni
Geotools OGR плагин - неудовлетворенная линкуратор (OGRJI или GDALALLJNI) ⇐ JAVA
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Geotools не может найти базу данных HSQL EPSG, выдает ошибку: NoSuchAuthorityCodeException.
Anonymous » » в форуме JAVA - 0 Ответы
- 26 Просмотры
-
Последнее сообщение Anonymous
-