跪求请教:gdaljava binding步骤
最近要用到GDAL,因为采用的语言是java 需要,相应的jni的dll和gdal.jar。但是不知道为什么总是在编译class文件时出错。具体如下:E:\gdal-1.5.0>nmake /f makefile.vc java
gdal150.zip解压至“E:\gdal-1.5.0”
修改源代码中的错误。源文件“C:\gdal-1.5.0\frmts\leveller\levellerdataset.cpp”的第171行的内容如下:
{ "?, kPI / 180.0, UNITLABEL_DEGREE },
在?号后面加上双引呈",改成如下形式:
{ "?", kPI / 180.0, UNITLABEL_DEGREE },
打开“Visual Studio 2005 命令提示”工具
1> E:\gdal-1.5.0
2> nmake /f makefile.vc 执行编译
3> nmake /f makefile.vc install
4> nmake /f makefile.vc devinstall
5> cd swig
6> E:\gdal-1.5.0\swig>nmake /f makefile.vc java
生成了4个dll:osrjni.dll orgjni.dll gdaljni.dll gdalconstjni.dll
但是在生成gdal.jar时报错如下:
compile:
[javac] Compiling 39 source files to E:\gdal-1.5.0\swig\java\build\classes
[javac] E:\gdal-1.5.0\swig\java\org\gdal\gdal\ColorEntry.java:32: 无法将 org
.gdal.gdal.gdalJNI 中的 delete_ColorEntry(java.awt.Color) 应用于 (long)
[javac] gdalJNI.delete_ColorEntry(swigCPtr);
[javac] ^
[javac] E:\gdal-1.5.0\swig\java\org\gdal\gdal\ColorEntry.java:44: 无法将 org
.gdal.gdal.gdalJNI 中的 ColorEntry_c1_set(java.awt.Color,short) 应用于 (long,sho
rt)
[javac] gdalJNI.ColorEntry_c1_set(swigCPtr, value);
[javac] ^
[javac] E:\gdal-1.5.0\swig\java\org\gdal\gdal\ColorEntry.java:48: 无法将 org
.gdal.gdal.gdalJNI 中的 ColorEntry_c1_get(java.awt.Color) 应用于 (long)
[javac] return gdalJNI.ColorEntry_c1_get(swigCPtr);
[javac] ^
[javac] E:\gdal-1.5.0\swig\java\org\gdal\gdal\ColorEntry.java:52: 无法将 org
.gdal.gdal.gdalJNI 中的 ColorEntry_c2_set(java.awt.Color,short) 应用于 (long,sho
rt)
[javac] gdalJNI.ColorEntry_c2_set(swigCPtr, value);
[javac] ^
[javac] E:\gdal-1.5.0\swig\java\org\gdal\gdal\ColorEntry.java:56: 无法将 org
.gdal.gdal.gdalJNI 中的 ColorEntry_c2_get(java.awt.Color) 应用于 (long)
[javac] return gdalJNI.ColorEntry_c2_get(swigCPtr);
[javac] ^
[javac] E:\gdal-1.5.0\swig\java\org\gdal\gdal\ColorEntry.java:60: 无法将 org
.gdal.gdal.gdalJNI 中的 ColorEntry_c3_set(java.awt.Color,short) 应用于 (long,sho
rt)
[javac] gdalJNI.ColorEntry_c3_set(swigCPtr, value);
[javac] ^
[javac] E:\gdal-1.5.0\swig\java\org\gdal\gdal\ColorEntry.java:64: 无法将 org
.gdal.gdal.gdalJNI 中的 ColorEntry_c3_get(java.awt.Color) 应用于 (long)
[javac] return gdalJNI.ColorEntry_c3_get(swigCPtr);
[javac] ^
[javac] E:\gdal-1.5.0\swig\java\org\gdal\gdal\ColorEntry.java:68: 无法将 org
.gdal.gdal.gdalJNI 中的 ColorEntry_c4_set(java.awt.Color,short) 应用于 (long,sho
rt)
[javac] gdalJNI.ColorEntry_c4_set(swigCPtr, value);
[javac] ^
[javac] E:\gdal-1.5.0\swig\java\org\gdal\gdal\ColorEntry.java:72: 无法将 org
.gdal.gdal.gdalJNI 中的 ColorEntry_c4_get(java.awt.Color) 应用于 (long)
[javac] return gdalJNI.ColorEntry_c4_get(swigCPtr);
[javac] ^
[javac] E:\gdal-1.5.0\swig\java\org\gdal\gdal\ColorEntry.java:76: 找不到符号
[javac] 符号: 构造函数 ColorEntry(java.awt.Color,boolean)
[javac] 位置: 类 org.gdal.gdal.ColorEntry
[javac] this(gdalJNI.new_ColorEntry(), true);
[javac] ^
[javac] 10 错误
这个问题困扰好几天了,恳请求高手帮忙看看,究竟怎么编译才行。或者如果有已经编译好的能用的dll和jar,能不能邮件给我。万分感谢。zwm.runa@qq.com
--------------------编程问答-------------------- 自己顶一下,继续等高手 --------------------编程问答-------------------- java不能直接用com的dll? --------------------编程问答-------------------- ?有谁弄过啊,求教啊。 --------------------编程问答-------------------- 我也遇到和楼主相同的问题。是按照gdal官网上给的步骤做的吗?gdal java编译参考http://trac.osgeo.org/gdal/wiki/GdalOgrInJavaBuildInstructions 不是cd swig里然后再nmake /f makefile.vc java 我也生成不了jar包 请问楼主的问题解决了吗?
补充:企业软件 , 地理信息系统