2012-03-21 13 views
1

ジオツールを使用してdtedファイルを読み込もうとしていますが、設定に問題があります。私はEclipseとJavaを使用しています。ここに私のコードの要約版があります:GeoTools/GDAL:警告:カカドネイティブライブラリを読み込めません

import org.geotools.coverageio.gdal.dted.DTEDReader;

public class ViewDTED { 
public static void main(String[] args) { 
try { 
DTEDReader reader = new DTEDReader(new File("C:\\temp\\mydted.dt2")); 
System.out.println("It worked!"); 
} catch (Exception e) { 
e.printStackTrace(); 
} 
} 
} 

実行すると、コンソールに「警告:Kakaduネイティブライブラリを読み込めませんでした」というメッセージが表示されます。 UnsatisfiedLinkErrorのスタックトレースを出力します。

私のシステムパスが含まれています: C:_path C:\プログラムファイル\ GDAL-1.9.0 C:\%JAVA_HOME%\ binに C:\ Program Files \ Commonファイル\ ESRI \ラスター\ビン\ ntx86

最後のものには、私のマシンで見つかった唯一のdllの名前にkakaduが含まれているなど、たくさんのdllが含まれています。 Cで


gdal19.dll
gdaljni.dll

ogrjni.dll osrjni.dll
gdalconstjni.dll
gdal.jar

これらのファイルだった:_pathは、私はこれを持っていますまた、私のEclipseプロジェクトのルートにコピーされます。 マイ日食ビルド・パスはgdal.jarとCで見つかったすべてのjarファイルが含ま:\プログラムファイル\のgeotools-2.7.4私は、この持っている私のEclipseプロジェクトのルートで

gdal19.dll
gdaljniを
osrjni.dll
gdalconstjni.dll
kakaducoresys.dll

ogrjni.dllの.dll
そうそう、私は別の環境変数が定義されています:GDAL_DATAはC」に設定されています:\ Program Files \ gdal-1.9.0 "

DTEDReaderで必要なライブラリが見つからない理由を教えてください。

答えて

0

JAVAの64ビットインスタンスから32ビットDLLを呼び出そうとしていないことを確認してください。

DjatokaにFedora Commonsを使用させようとすると、Windowsサーバー上でKakaduと同様の問題が発生しました。問題の根本的な原因は、Tomcatの64ビットインスタンスとJavaの64ビットバージョンのDjatokaから無料の32ビットバージョンのKakaduライブラリを読み込もうとしていることが判明しました。

Java JNIファイルは、64/32ビットDLL(または共有オブジェクト)との通信を試みるのが難しいようでした。したがって、名前が変更された32ビットファイルを使用してKakaduの64ビットライブラリ構造を偽装することはできません。

この問題を解決するには、64ビットバージョンのFedora Commonsが32ビットバージョンのKakaduと通信できるように、別のバージョンのTomcatとJAVAを同じWindowsサーバーにインストールする必要がありましたDjatoka。

関連する問題