ae(ArcEngine) java swing开发入门系列(1):开发环境和代码部署
前言:做ae开发大部分人都是用C#版,很少用到java版,本系列文章主要介绍java版ae开发的入门,对于ae接口的高级应用,可以看C#版相关文章
开发环境软件:
Intellij IDEA 2018
java jdk 1.8 32位版
arcgis desktop 10.4.1
ArcObject sdk java 10.4.1
PS:本文要求读者有一定java开发基础,有jdk配置和idea使用经验,否则牵涉基础知识太多没法解释全
PS:本文使用的控件库是swing,swing是目前java cs端最流行,资料最全,坑最少,但不是最新的控件库。更新的JavaFX在嵌入MapControl不能正常显示,但除了MapControl之外的ae接口倒是正常
PS:ae 10.4的运行环境,也就是以前的ae runtime叫ArcGIS_Engine_Windows_1041_152027.exe,如果用的是破解,千万不能装!!装了后许可初始化不能通过,因此现在用desktop作为运行环境
首次进行java ae开发的配置
首先是idea的配置

此配置意思是swing界面编辑结果自动生成到代码(PS:对于winform开发就是designer文件)

每次打开新代码的配置
PS:本文配有demo代码,这里的说明是针对这套代码的,跟ae和swing没有绝对的关系
本代码使用了maven,集成了springboot,因此打开代码后,jdk配置,刷新maven依赖等都要做一次,在此不展开说明
Jdk方面,只能用32位的jdk(因为ae和Arcgis desktop都是32位软件,而我们的程序调用了他们的dll)
引用依赖forms_rt.jar:
Swing编译时需要forms_rt.jar,此文件在idea安装目录中



添加完成后的样子

复制arcobjects.jar到代码文件:
由于arcobjects.jar很大所以没打包到代码,要开发人员自行获取并拷到代码的指定目录
arcobjects.jar在arcgis desktop的安装目录下,这里:

PS:奇怪的是DeveloperKit10.4目录下没此文件
然后拷到代码中这个目录

Run Debug配置:
除了一般的配置外,还要增加这些
在Run Debug配置添加一个maven项目,并添加下图一句:spring-boot:run(PS:这是springboot需要的)

在Runner(这里配置的java运行环境的配置)的tab,不勾选【使用工程配置】,【vm option】输入-Djava.library.path="C:\Program Files (x86)\ArcGIS\Desktop10.4\bin",注意这是desktop安装目录,要按自己电脑真实情况修改

到此代码配置完成,可以开始调试,点这里

运行效果,这套代码是一个demo,可以从各按钮找到对应的demo代码

附属代码,百度网盘:链接:https://pan.baidu.com/s/1NmbDyLS2PulWPnK6usfm7g
提取码:gxa2
csdn下载:https://download.csdn.net/download/cannel/10951872
ae(ArcEngine) java swing开发入门系列(1):开发环境和代码部署的更多相关文章
- 【JAVA零基础入门系列】Day2 Java集成开发环境IDEA
开发环境搭建好之后,还需要一个集成开发环境也就是IDE来进行编程.这里推荐的IDE是IDEA,那个老掉牙的Eclipse还是先放一边吧,(手动滑稽). IDEA的下载地址:http://www.jet ...
- 【JAVA零基础入门系列】Day1 开发环境搭建
[JAVA零基础入门系列](已完结)导航目录 Day1 开发环境搭建 Day2 Java集成开发环境IDEA Day3 Java基本数据类型 Day4 变量与常量 Day5 Java中的运算符 Day ...
- 【JAVA零基础入门系列】Day4 变量与常量
这一篇主要讲解Java中的变量,什么是变量,变量的作用以及如何声明,使用变量. 那么什么是变量?对于初学者而言,可以将变量理解为盒子,这些盒子可以用来存放数据,不同类型的数据需要放在对应类型的盒子里. ...
- 【JAVA零基础入门系列】Day5 Java中的运算符
运算符,顾名思义就是用于运算的符号,比如最简单的+-*/,这些运算符可以用来进行数学运算,举个最简单的栗子: 已知长方形的长为3cm,高为4cm,求长方形的面积. 好,我们先新建一个项目,命名为Rec ...
- 【JAVA零基础入门系列】Day6 Java字符串
字符串,是我们最常用的类型,每个用双引号来表示的串都是一个字符串.Java中的字符串是一个预定义的类,跟C++ 一样叫String,而不是Char数组.至于什么叫做类,暂时不做过多介绍,在之后的篇章中 ...
- 【JAVA零基础入门系列】Day8 Java的控制流程
什么是控制流程?简单来说就是控制程序运行逻辑的,因为程序一般而言不会直接一步运行到底,而是需要加上一些判断,一些循环等等.举个栗子,就好比你准备出门买个苹果,把这个过程当成程序的话,可能需要先判断一下 ...
- 【JAVA零基础入门系列】Day9 Java中的那个大数值
什么是大数值?用脚趾头想也知道,当然是"大"的数值(233).Java中有两个用于表示大数值的类,BigInteger和BigDecimal,那到底能表示多大的数值呢?理论上,可以 ...
- 【JAVA零基础入门系列】Day10 Java中的数组
什么是数组?顾名思义,就是数据的组合,把一些相同类型的数放到一组里去. 那为什么要用数组呢?比如需要统计全班同学的成绩的时候,如果给班上50个同学的成绩信息都命名一个变量进行存储,显然不方便,而且在做 ...
- 【JAVA零基础入门系列】Day11 Java中的类和对象
今天要说的是Java中两个非常重要的概念--类和对象. 什么是类,什么又是对象呢?类是对特定集合的概括描述,比如,人,这个类,外观特征上,有名字,有年龄,能说话,能吃饭等等,这是我们作为人类的相同特征 ...
- 【JAVA零基础入门系列】Day12 Java类的简单应用
俗话说的好,实践出真知,所以除了理论知识掌握扎实以外,更重要的是要多加操练,这样才能掌握核心科技. 今天我们就用刚学会的类来实践一下,目标便是完成上一篇中的剁手任务. 我们的商品类已经准备好了,代码重 ...
随机推荐
- Ubuntu——Python3.x——scikit-learn 安装
修改默认Python (默认的是Python2.7) rm -rf /usr/bin/python ln -s /usr/bin/ptyhon3 /usr/bin/python 安装所需依赖: apt ...
- BOM——浏览器对象模型(Browser Object Model)
什么是BOM? BOM是Browser Object Model的缩写,简称浏览器对象模型 BOM提供了独立于内容而与浏览器窗口进行交互的对象 由于BOM主要用于管理窗口与窗口之间的通讯,因此其核心对 ...
- SQL Replication
http://www.cnblogs.com/CareySon/archive/2012/06/20/IntroductToSQLServerReplicationPart1.html http:// ...
- JAVA正则表达式之 Pattern介绍
1.简介: java.util.regex是一个用正则表达式所订制的模式来对字符串进行匹配工作的类库包. 它包括两个类:Pattern和Matcher. Pattern 一个Pattern是一个正则表 ...
- 【转载】Eclipse:Android开发中如何查看System.out.println的输出内容
Android开发中在代码中通过System.out.println的输出内容不知道去哪了,在console视图中看不到.而通过Log.i之类的要在Logcat视图中看到,夹杂了太多的其它App及底层 ...
- win7 卸载ie10+ 重新安装ie8
烦恼: erp系统不支持高版本ie10+ 项目开发测试需要安装了高版本ie 项目结束,为了方便使用erp,决定卸载ie11,重新安装ie8 解决方法: 1.win+R打开运行命令,键入appwiz.c ...
- opengl1
OpenGL Programming Guide Programming Guide > Chapter 1 Chapter 1 Introduction to OpenGL Chapter O ...
- lower_bound和upper_bound使用说明
#include <bits/stdc++.h> using namespace std; int main() { ]; ;i<=;i++) { a[i] = i*; } ;i&l ...
- aimOffset注意事项
AimOffset的记录 AimOffset是什么,就是动画(相对于某个具体姿势比如待机动作的)叠加. AimOffset有什么用,简单说就是叠加动作,比如无双中骑马挥刀动作叠加. 注意步骤 1所有分 ...
- 洛谷P1044 栈(Catalan数)
P1044 栈 题目背景 栈是计算机中经典的数据结构,简单的说,栈就是限制在一端进行插入删除操作的线性表. 栈有两种最重要的操作,即pop(从栈顶弹出一个元素)和push(将一个元素进栈). 栈的重要 ...