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),. 表示当前目录。
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),. 表示当前目录。
相关文章推荐
- [Objective-C] iOS 开发中建议使用自动引用计数(ARC)
- [Objective-C] 从“引用计数”过渡到“自动引用计数”(ARC)
- 使用Xcode HeaderDoc和Doxygen文档化你的Objective-C和Swift代码
- poj 3241 Object Clustering 曼哈顿最小生成树
- [Objective-C] Objective-C中的id
- 从 C++ 到 Objective-C 的快速指南
- IOS --Object-C 四种保存数据的方式
- .NET平台开源项目速览(2)Compare .NET Objects对象比较组件
- object reference in Java
- 重踏学习Java路上_Day11(Object)
- IDNFeedParser 一个简单易用的Rss解析库(Objective-C)
- freemarker.core.InvalidReferenceException: Expression stackObject.value.get(propertyName).toString() is undefined
- CALayer-简介(一)
- java学习之旅40--面向对象_13_继承_Object类用法_toString和equals方法_重写toString
- Objective-C 快速入门--基础(三)
- Objective-C 快速入门--基础(三)
- IOS编程第四版第二章:Objective-C
- [学习笔记—Objective-C]《Objective-C 程序设计 第6版》第六章 选择结构 课后题6-4&6-6&6-7
- 转:RealThinClient LinkedObjects Demo解析
- net.sf.json.JSONObject 和org.json.JSONObject 的差别