前言:做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):开发环境和代码部署的更多相关文章

  1. 【JAVA零基础入门系列】Day2 Java集成开发环境IDEA

    开发环境搭建好之后,还需要一个集成开发环境也就是IDE来进行编程.这里推荐的IDE是IDEA,那个老掉牙的Eclipse还是先放一边吧,(手动滑稽). IDEA的下载地址:http://www.jet ...

  2. 【JAVA零基础入门系列】Day1 开发环境搭建

    [JAVA零基础入门系列](已完结)导航目录 Day1 开发环境搭建 Day2 Java集成开发环境IDEA Day3 Java基本数据类型 Day4 变量与常量 Day5 Java中的运算符 Day ...

  3. 【JAVA零基础入门系列】Day4 变量与常量

    这一篇主要讲解Java中的变量,什么是变量,变量的作用以及如何声明,使用变量. 那么什么是变量?对于初学者而言,可以将变量理解为盒子,这些盒子可以用来存放数据,不同类型的数据需要放在对应类型的盒子里. ...

  4. 【JAVA零基础入门系列】Day5 Java中的运算符

    运算符,顾名思义就是用于运算的符号,比如最简单的+-*/,这些运算符可以用来进行数学运算,举个最简单的栗子: 已知长方形的长为3cm,高为4cm,求长方形的面积. 好,我们先新建一个项目,命名为Rec ...

  5. 【JAVA零基础入门系列】Day6 Java字符串

    字符串,是我们最常用的类型,每个用双引号来表示的串都是一个字符串.Java中的字符串是一个预定义的类,跟C++ 一样叫String,而不是Char数组.至于什么叫做类,暂时不做过多介绍,在之后的篇章中 ...

  6. 【JAVA零基础入门系列】Day8 Java的控制流程

    什么是控制流程?简单来说就是控制程序运行逻辑的,因为程序一般而言不会直接一步运行到底,而是需要加上一些判断,一些循环等等.举个栗子,就好比你准备出门买个苹果,把这个过程当成程序的话,可能需要先判断一下 ...

  7. 【JAVA零基础入门系列】Day9 Java中的那个大数值

    什么是大数值?用脚趾头想也知道,当然是"大"的数值(233).Java中有两个用于表示大数值的类,BigInteger和BigDecimal,那到底能表示多大的数值呢?理论上,可以 ...

  8. 【JAVA零基础入门系列】Day10 Java中的数组

    什么是数组?顾名思义,就是数据的组合,把一些相同类型的数放到一组里去. 那为什么要用数组呢?比如需要统计全班同学的成绩的时候,如果给班上50个同学的成绩信息都命名一个变量进行存储,显然不方便,而且在做 ...

  9. 【JAVA零基础入门系列】Day11 Java中的类和对象

    今天要说的是Java中两个非常重要的概念--类和对象. 什么是类,什么又是对象呢?类是对特定集合的概括描述,比如,人,这个类,外观特征上,有名字,有年龄,能说话,能吃饭等等,这是我们作为人类的相同特征 ...

  10. 【JAVA零基础入门系列】Day12 Java类的简单应用

    俗话说的好,实践出真知,所以除了理论知识掌握扎实以外,更重要的是要多加操练,这样才能掌握核心科技. 今天我们就用刚学会的类来实践一下,目标便是完成上一篇中的剁手任务. 我们的商品类已经准备好了,代码重 ...

随机推荐

  1. YPBPR_PC下图像有毛刺或者水纹干扰的处理办法

    VGA下一般是不做任何处理的,当然也不排除个别情况下,客户强烈要求,会打开的现象. (1)做一下auto color和auto adjust (2)调节一下ADC,如果是mstar的方案,将对比机的的 ...

  2. PCL中异常处理机制

    博客转载自:http://www.pclcn.org/study/shownews.php?lang=cn&id=287 本节我们主要讨论PCL在编写和应用过程中如何利用PCL的异常机制,提高 ...

  3. Linux下搭建tomcat集群全记录

    (转) Linux下搭建tomcat集群全记录 2011-10-12 10:23 6133人阅读 评论(1) 收藏 举报 tomcatlinuxapacheinterceptorsession集群 1 ...

  4. Linux打开防火墙telnet端口

    检查端口情况:netstat -an | grep 22 关闭端口号:iptables -A INPUT -p tcp --drop 端口号-j DROP                    ipt ...

  5. POJ - 1502 MPI Maelstrom 路径传输Dij+sscanf(字符串转数字)

    MPI Maelstrom BIT has recently taken delivery of their new supercomputer, a 32 processor Apollo Odys ...

  6. DropDownlist数据SelectedIndexChanged触发问题解决

    1.设置DropDownlist的AutoPostBack为True 2.绑定DropDownlist数据时出现了重复项, 在载入数据时保存数据状态应该写在Load事件中的if (!IsPostBac ...

  7. 无监督学习:Deep Auto-encoder(深度自动编码器)

    一 Auto-encoder NN Encoder & NN Decoder 要一起训练. 二 Starting from PCA 三 Deep Auto-encoder PCA&De ...

  8. __stdcall

    __stdcall是函数调用约定的一种,函数调用约定主要约束了两件事: 1.参数传递顺序 2.调用堆栈由谁(调用函数或被调用函数)清理 常见的函数调用约定:stdcall cdecl fastcall ...

  9. uoj#386. 【UNR #3】鸽子固定器(乱搞)

    传送门 题解 //minamoto #include<bits/stdc++.h> #define R register #define ll long long #define fp(i ...

  10. Python序列化模块pickle和json使用和区别

    这是用于序列化的两个模块: • json: 用于字符串和python数据类型间进行转换 • pickle: 用于python特有的类型和python的数据类型间进行转换 Json模块提供了四个功能:d ...