教程中所基于的环境为Windows7 旗舰版 SP1 64位,ArcGIS for Desktop 10.0版本, jdk-7u60-windows-i586,Eclipse Standard/SDK Version: Kepler Service Release 2(4.3.2),WindowsBuilder 1.7。
ESRI的ArcGIS软件安装在网上有很多教程,不再重复。作为开发来讲,ArcGIS的安装有两种方案。一种是先安装ArcGIS for Desktop,再安装ArcObjects SDK for java。这样不仅可以做GIS开发,还可以使用desktop进行数据管理、编辑处理。
第二种是安装ArcGIS Runtime后,再安装ArcObjects SDK for java。由于我一直离不开ArcGIS Desktop,所以没有试验过这种组合。一般情况下,推荐使用第一种组合。下面是我安装完成后的文件夹内容。
安装完desktop,再准备安装jdk,并配置jdk的开发环境。ArcObjects SDK for java 所使用的JDK是32位的,所以在安装JDK时要注意。我的win7系统是64位的,Eclipse也是64位的,所以一开始安装JDK是选择的也是64位。结果在运行AO的示例是就报了如下错误:
Could not load native libraries.java.lang.UnsatisfiedLinkError: no ntvinv in java.library.path
之后改用了32位的JDK才可以通过,我的机器中分别安装了32位和64位的JDK。现在我的Eclipse启动使用的jdk是64位的,在运行AO的示例时,使用的编译JDK是32位。
我没有把jdk安装在”program files”文件夹中,好像是因为编译GDAL时,jdk路径中有空格的话,路径得用双引号括起来。后来为了避免这个情况,干脆直接换了个路径安装。
Jdk下载路径:http://www.oracle.com/technetwork/java/javase/downloads/index.html
安装完jdk后需要配置系统变量。如下
JAVA_HOME: C:\Java\jdk1.7.0_60
CLASSPATH: .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar
在PATH中添加以下内容:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin; 建议这两个路径添加到%SystemRoot%\system32路径的前面。因为在system32文件夹中也有java.exe。
当在cmd中使用java –version命令时,会按从左往右的顺序在Path中搜索java命令,把JAVA_HOME放在Path路径中%SystemRoot%\system32的前面就可以通过修改JAVA_HOME来修改使用的jdk版本了。
当我的JAVA_HOME修改为C:\Java\jdk1.7.0_60_win32时,启动Eclipse时会出现“Failed to load the JNI shared library…”,是由于jdk为32位,而Eclipse为64位导致的,只要将JAVA_HOME修改为64位的JDK路径就可以启动Eclipse了。如果使用的Eclipse是32位的就不会存在这个问题。
按照Esri给出的一篇文档上,推荐的是
“在安装ArcGIS Plug-ins插件前,要安装Visual Editor插件。当然了,不安装这个插件也可以正常安装ArcGIS Plug-ins的插件,只是在后面ArcGIS Plug-ins的ArcGIS Engine Palette插件安装不了。所以下一步安装Visual Editor插件。安装Visual Editor之前,需要安装emf和GEF插件。因此,要完全安装Eclipse的Engine插件,需要这么一个安装流程:
安装EMF插件、GEF插件àVisual Editor插件àEngine插件。”
为了能实现在开发过程中拖拽ArcGIS的各种控件,我尝试安装VE插件。结果发现VE插件已经不再支持了http://www.chinambs.com/a/Androidcuowujijin/2014/0320/296.html。
我就使用了WindowsBuilder http://www.eclipse.org/windowbuilder/ 不过可惜是不能安装ArcGIS Engine Palette。
第一步安装windowsbuilder,下载地址为:
http://www.eclipse.org/windowbuilder/download.php
安装方法为:
http://download.eclipse.org/windowbuilder/WB/integration/4.3/
安装后:
接下来安装ArcObjects SDK for Java
按照提示安装完成即可。安装后的文件夹..\ArcGIS\DeveloperKit10.2如下图:
我同时安装了ArcObjects SDK for MicroSoft.net Framework 和ArcObjects SDK for Java。
启动Eclipse,点击helpàinstall new software…打开install对话框,点击Add按钮,打开Add Repository对话框,点击Local按钮,找到..\ArcGIS\DeveloperKit10.2\java\tools\eclipse_plugin\arcgis_update_site\arcobjects文件夹。
确定后在install对话框中的name项下会出现ArcGIS Plug-ins的内容
全选后安装,根据环境配置,此处的Esri ArcObjects Palette将不会被安装。
安装完成后,将会重启Eclipse,重启之后Eclipse上菜单上会有一个ArcGIS项
在About对话框中也会有Esri的图标
在创建示例之前要先添加两个环境变量,AGSDESKTOPJAVA和AGSDEVKITJAVA。这两个变量指向了示例程序所需要的资源,在程序的代码中有体现。
AGSDESKTOPJAVA:D:\Program Files (x86)\ArcGIS\Desktop10.2\
AGSDEVKITJAVA:D:\Program Files (x86)\ArcGIS\DeveloperKit10.2\
启动Eclipse,点击fileànewàothersàEsri Templates
打开New ArcObjects Sample Project对话框,在Select a Sample项下选择visualbeansàmapbeanàaddlayerfiletomap,点击finish便创建了一个addlayerfiletomap工程,
运行该工程,成功运行即可。