您的位置:首页 > 移动开发 > Objective-C

java平台下arcobjects的开发

2015-06-29 11:43 513 查看
Arcobjects java 二次开发

1.开发环境中安装插件

在eclipse(选择菜单Help下的Install New Softwares)中安装ESRI插件 plug-ins,位于

F:\ArcGIS\DeveloperKit10.1\java\tools\eclipse_plugin\arcgis_update_site\arcobjects

 


包括两个插件:Esri ArcObjects Palette与Esri ArcObjects,刚好对应features文件夹内两个文件,Palette插件实现可视化编辑开发arcgis程序,拖拽arcgis visual bean components,需要先安装Visual Editor plugin(ve)。

(plugins中包括多个jar包,features下的文件中不包括类文件,只有描述性的文件,其中feature.xml文件引用了plugins中的jar包,一个Eclipse插件对应一个feature文件,该文件引用plugins下的多个jar包来实现该插件的功能,feature文件只是描述引用作用,起组合plugins下jar包作用。)



2.构建arcgis应用程序

新建项目后,在项目属性页面中的Java build path引入arcobjects.jar包(会提示你使用desktop还server的库文件,前者位于Desktop\java\lib,后者位于Server\framwork\lib,两者实际是一样的)

具体可以参考arcgis java帮助手册。 Arcobjects.jar是位于java与arcobject组成之间,负责对组件进行调用,组件是用C++写的COM组件。

安装arcgis desktop下java目录下jre是32位,developerkit下的java也是32位数,需要使用32位jdk编译,并用其对应jre运行。

安装完后在系统变量里出现如下变量:

 

1).运行developkit\java下的样例程序时出现native错误,unsatisfiedLinkError异常时,检查你用于运行样例程序(jar)的java虚拟机JVM是否为32位。

我利用JDK_1.8_u45可以运行,需配置环境变量JAVA_HOME

2).如果删掉以上的环境变量,再运行会出现如下错误

 



报错:没有安装ArcGIS Engine Runtime或ArcGIS Desktop;添加环境变量:

AGSDESKTOPJAVA=F:\ArcGIS\Desktop10.1\

后可以正常运行。

AGSDEVKITJAVA=F:\ArcGIS\DeveloperKit10.1\ 配置后可以正常启动帮助文档

如果利用javac编译时,需要指定arcobjects.jar包类文件

3.利用arcobjects开发的基本流程

(1)初始化Java COM Interop:利用EngineInitialize类来实现

通过Java COM Interop完成java类与原生arcobjects组件之间的沟通native COM ArcObjects components

(2)初始化有效许可 AoInitialize

(3)调用组件 Invoke ArcObjects

(4)释放许可 Release the license :AoInitialize的shutdown方法可以释放资源并通知arcobjects组件,他的服务不需要再提供了,由于AoInitialize是singleton class,所以不用担心你所关闭的不是你目前的系统。

注意:利用eclipse进行开发时需要指定arcobjects.jar与jre的buildpath,其作用是在利用javac编译时能找到相应的类文件(class文件),同时运行时也需要指定其位置,不能将Desktop10.1\java\lib下的arcobjects.jar拷贝到其他位置来链接他。

在命令行下的编译运行:

  javac –cp %AGSDESKTOPJAVA%\java\lib\arcobjects.jar BasicViewer.java

  java –cp %AGSDESKTOPJAVA%\java\lib\arcobjects.jar;. BasicViewer

如果java文件中包括package命令,要将编译成的class文件放在相应的层级目录下:

  Java –cp %AGSDESKTOPJAVA%\java\lib\arcobjects.jar;f:\data wei.BasicViewer

其中f:\data是wei目录的父目录,其告诉虚拟机在f:\data下搜索wei.BasicViewer类文件(即wei\BasicViewer.class),. 表示当前目录。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: