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类的简单应用
俗话说的好,实践出真知,所以除了理论知识掌握扎实以外,更重要的是要多加操练,这样才能掌握核心科技. 今天我们就用刚学会的类来实践一下,目标便是完成上一篇中的剁手任务. 我们的商品类已经准备好了,代码重 ...
随机推荐
- Python之模块介绍
模块介绍 模块,是用一些代码实现的某个功能的代码集合. 类似与函数式编程和面向过程编程,函数式编程则完成一个功能,其他代码用来调用,提供了代码的重用性和代码间的耦合.对于一个复杂的功能,可能需要多个函 ...
- JS---基础用法2
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...
- C#窗体上绘制矩形
先上效果图 鼠标三个事件 private void Form1_MouseDown(object sender, MouseEventArgs e) { //记录开始点 this.mousedown ...
- 关于WPF的弹出窗口
几个重要的概念需要清楚: Show和ShowDialog区别 1.调用Show方法后弹出子窗口后,线程会继续往下执行.调用ShowDialog方法弹出子窗口后,线程会阻塞,直到子窗口关闭才继续往下执行 ...
- ios之Block研究
Block的好处,我总结了下主要有2点:1.用于回调特别方便,2.可以延长对象的作用区域.但是,Block的内存管理这个模块一直不是很清楚,这个周末好好的看了下Block的原理,有些许心得. 为了性能 ...
- 24.集成ASP.NETCore Identity
正常的情况下view页面的错误的显示应该是这么去判断的 这里我们就不加判断为了,直接用这个div 显示就可以了.当有错误会自动显示在div内 asp.net core Identity加入进来 这里用 ...
- ARP欺骗(完全版)
在讲ARP欺骗之前先讲讲什么是ARP以及ARP欺骗的原理吧. 一. 什么是ARP? arp英文全称: address resolution protocol 中文:地址解析协议 它的作用:是根 ...
- 9. 那些强悍的PHP一句话后门
强悍的PHP一句话后门 这类后门让网站.服务器管理员很是头疼,经常要换着方法进行各种检测,而很多新出现的编写技术,用普通的检测方法是没法发现并处理的.今天我们细数一些有意思的PHP一句话木马. 利用4 ...
- POJ - 2411 Mondriaan's Dream(轮廓线dp)
Mondriaan's Dream Squares and rectangles fascinated the famous Dutch painter Piet Mondriaan. One nig ...
- Linear Algebra - Determinant(基础)
1. 行列式的定义 一阶行列式: \[ \begin{vmatrix} a_1 \end{vmatrix} = a_1 \] 二阶行列式: \[ \begin{vmatrix} a_{11} & ...