2016-10-12 1 views
0

Je suis en train de charger le fichier geotiff avec gdal api (java). Voici mon code de test.Erreur lors de l'ouverture du fichier gdal java

public class App 
{ 
    public static void main(String[] args) 
    { 
     gdal.AllRegister(); 
     Dataset dataset = gdal.Open("output.tif"); 
    } 
} 

Mais j'ai une erreur

Exception in thread "main" java.lang.UnsatisfiedLinkError: org.gdal.gdal.gdalJNI.Dataset_SWIGUpcast(J)J 
at org.gdal.gdal.gdalJNI.Dataset_SWIGUpcast(Native Method) 
at org.gdal.gdal.Dataset.<init>(Dataset.java:20) 
at org.gdal.gdal.gdal.Open(gdal.java:585) 
at org.gdaltest.projection.App.main(App.java:18) 

J'utilise projet Maven, donc j'ajouté la dépendance gdal

<dependency> 
    <groupId>org.gdal</groupId> 
    <artifactId>gdal</artifactId> 
    <version>2.1.0</version> 
</dependency> 

J'utilise Windows 10 et installé GDAL 2.1.0. J'avais déjà défini la variable d'environnement GDAL_DATA et le répertoire Gdal dans path.

Ai-je raté quelque chose?

Répondre

0

Les redoutables UnsatisfiedLinkErrors sont des problèmes assez courants lorsqu'il s'agit de gérer des bibliothèques natives.

Normalement, vous devez définir le paramètre VM java.library.path afin que Java puisse trouver les bibliothèques natives.

See an example here

Another gdal related unsatisfied link error issue here

+0

Je n'ai pas de problème d'exécution –

+0

Je n'ai aucun problème d'exécution ogr.RegisterAll(), gdal.AllRegister(), gdal.VersionInfo(). Mais j'ai toujours la même erreur quand j'utilise la méthode gdal.open ("") –

1

-je résoudre le problème. J'ai remplacé le fichier jar situé dans le répertoire maven (C: \ Utilisateurs \ Myuser.m2 \ repository \ org \ gdal \ gdal \ 2.1.0) par le fichier jar situé dans le dossier gdal (C: \ Program Files \ GDAL). Et maintenant ça marche.

+0

je veux dire le fichier jar dans C: \ Program Files \ GDAL \ java –