写在前面:
在实验 java 调用 ArcObject(下文简称AO),开发业务功能时,遇到了普通 java 工程可以正常运行,而在将工程改为 web 后台,放在 tomcat 中运行时,出现了错误,具体错误信息已在其他文章说明,在些不在赘述,开发功能是不可少的,既然出现了问题,就要解决问题,遂想到将开发的 AO 程序,打包可独立可运行 jar 包,以 cmd 的方式调用,不也能解决问题吗,于是开始测试,不想测试成功,在此记录,以备将来查询。
(注:打包的独立可运行的调用了 AO 接口 jar 包,不可被同时运行2个实例,具体原因未向 esri 技术支持咨询,是我实测发现的,有可能是我代码中调用 AO 的部分有问题,也可能是 AO 不支持多线程,谁知道呢)
1、开发环境
myeclipse 2014, ArcGIS 10.5,jdk 1.8 32位
开发的环境的安装配置,网上很多,就不啰嗦了。
2、AO代码的开发
我想读这篇文章的各位亲已经是 AO 开发的大牛、小牛了,有关 java 调用 AO SDK 开发,就不啰嗦了,在这里,我实验的是 AO 调用自定义 toolbox 模型,用到了 geoprocessor 等内容。
3、具体 cmd 脚本
在写 cmd 脚本前,假设 arcgis 安装路径是:C:\Program Files (x86)\ArcGIS;
开发好的 AO 程序打包好,放在一个目录下(也可不放,各位随心),在该目录下新建 callao.bat 文件,书写如下内容:
rem设置当前 cmd 窗口编码为 utf-8,防止开发的AO程序中接收的参数中有中文,无法正确运行
chcp 65001
set AGSDESKTOPJAVA=C:\Program Files (x86)\ArcGIS\Desktop10.5\
set JAVA_HOME=C:\Program Files (x86)\Java\jdk1.8.0_144set Path=%JAVA_HOME%\bin;%AGSDESKTOPJAVA%bin;%AGSDESKTOPJAVA%java\lib
java -jar callao.jar(此处为调用AO打包好的jar包绝对路径) param1(参数1) param2(参数2) //说明:参数的个数根据各位亲调用 AO 代码具体情况来定
4、结尾
哈哈,亲们试试,能不能运行起来!