文档章节

使用IDEA创建GUI Form项目并构建

xiaoxin
 xiaoxin
发布于 2018/09/06 09:13
字数 712
阅读 628
收藏 0

本文使用的开发环境是

IntelliJ IDEA 2016.2.5
Build #IU-162.2228.15, built on October 14, 2016
Licensed to msi

JRE: 1.8.0_112-release-287-b2 x86
JVM: OpenJDK Server VM by JetBrains s.r.o

IDEA使用GUI Form开发的时候,到产品发布打包的阶段,由于IDEA的GUI Form需要依赖IDEA提供的一个jar包,使用IDEA自带的构建、运行方法,在run和debug的时候,都运行的很好,但是,如果使用ant或者gradle等构建工具构建或打包后,运行时会报空指针异常等错误,排查发现是由于没有找到IDEA自动生成的Swing组件。 
在查阅网上相关的帖子,和IDEA自带的帮助手册以后,把解决方法总结如下:

有两个步骤–>

1.第一步,使用IDEA的帮助手册,IDEA中按F1,搜索GUI,可以找到如下条目: 
GUI Designer Output Options截图如下: 
IDEA-help.JPG

这里说明了两种输出方式,第一种是编译成运行时的class文件,自己写的代码构建成class文件与IDEA之间的关联被忽略了,也就是说是由IDEA自己维护的;第二种情况是将依赖的IDEA的相关类直接在build的时候生成到源码中,这里要选用Java source code这一项。回过头来,关掉帮助手册,Ctrl+Alt+s打开Settings,搜索GUI Designer,可以看到如下截图: 
setting-gui-designer.JPG
如图中选好。

这个时候,再次构建项目,就可以看到在源码文件中,自动生成了一些代码,并且引入了依赖的IDEA的包,如下图: 
idea=rely-package.JPG
红框中可以看到对应的依赖。

2.第二步,找到IDEA GUI Form依赖的jar包,并引入项目中。 
依赖的包是IDEA自带的,在IDEA的安装目录中可以找到。不同版本的IDEA,这个包会自动随着升级,所以,对应引用安装目录中的包就行了。

如果跨版本引用,可能会产生一些意想不到的问题,有兴趣的同学可以试验一下 ^_^

具体的引用过程如下图: 
project-set-rely.JPG
可以看到forms_rt.jar正式1步骤中显示引用的包。

有了上边两步配置之后,不管是使用ant还是gradle等构建工具build项目的时候,在out输出目录中,可以看到类似如下图的包结构: 
package-struct.JPG

其中guiform为我的源码包,itelliji为IDEA的forms_rt.jar的包,有了1步骤中的设置,在源码的class文件中完全可以引用到IDEA的包,所以,使用out中的class文件打包以后,就可以完美运行了!

本文转载自:https://blog.csdn.net/stpice/article/details/72858913

xiaoxin
粉丝 21
博文 268
码字总数 20390
作品 0
海淀
私信 提问
IntelliJ IDEA使用技巧(十九)——Project 和 Module 的概念及区别

在 IntelliJ IDEA 中,没有类似于 Eclipse 工作空间(Workspace)的概念,而是提出了Project和Module这两个概念。接下来,就让咱们一起看看 IntelliJ IDEA 官方是如何描述两者的吧! 对于 Pr...

发芽的土豆丶
2017/11/06
0
0
Play For Scala 开发指南 - 第4章 第一个Play项目

转载请注明joymufeng,欢迎访问PlayScala社区(http://www.playscala.cn) 原文链接:http://www.playscala.cn/doc/catalog?id=j111 准备环境 安装JDK8 单击这里下载并安装JDK8,安装完成后在命...

joymufeng
2017/10/20
0
0
SpringBoot学习之路:12.Spring Boot使用idea开发如何配置热加载

java开发的ide用最多的无非就是eclipse和idea,在eclipse中开发springboot,要使项目热加载资源只需要在pom文件中引入springboot的开发工devtools即可。但是该工具在使用idea开发springboot时...

MaxBill
2018/08/15
0
0
IntelliJ IDEA 2018.2 EAP 发布,支持 Touch Bar

IntelliJ IDEA 2018.2 EAP 已发布:包含对 MacBook Touch Bar 的支持,对 Gradle 支持的改进,新图标,Spring Boot 及一些更新。 支持 Touch Bar 即将推出的 IntelliJ IDEA 2018.2 引入了 To...

达尔文
2018/05/18
5K
28
IntelliJ IDEA 13 + Genymotion 2.3 开发环境搭建

【声明】 本文来自:http://www.cnblogs.com/smyhvae/p/4013535.html 【有修改】 【正文】 【开发环境】 物理机版本:Win 7旗舰版(32位) Java SDK版本:jdk1.8.0_20(32位) Android SDK版...

Lofo
2014/10/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

rocketmq之源码分析阶段总结(二十一)

RocketMQ是队列模型的消息中间件,具有高性能,高可靠,高实时,分布式的特点。同时支持分布式事物的两阶段提交,实现在分布式环境的事物操作。 1,nameserv是分布式的部署,并且相互之间不通...

wangshuaixin
24分钟前
2
0
小猿圈linux之在mac上安装 docker

docker极大提高了应用的运行效率,降低了云计算资源供应的成本,同时让应用的部署、测试和分发都变得前所未有的高效和轻松!docker是一个容器,不像kvm,他是真实的系统,启动时,KVM消耗的资...

小猿圈加加
30分钟前
1
0
spring aop 代理private方法 报错的问题分析

spring aop 代理private方法报空指针的问题 这两天做aop切面日志时,发现private方法报空指针。 原切入点配置如下: @Pointcut("@within(org.springframework.web.bind.annotation.RestC...

my_juke
34分钟前
2
0
c 基础教程六:c 循环结构

有的时候,我们可能需要多次执行同一块代码,c 语言提供了如下几种循环,各有特色。 while 循环 for 循环 do-while 循环 while 循环 只要给定的条件为真,C 语言中的 while 循环语句会重复执...

故城以南丶思念不安
53分钟前
4
0
spark 常见操作

为spark DataFrom 添加一个为 空的新列,使用UDF函数 想产生一个IntegerType类型列为null的DataFrame该怎么做。 import org.apache.spark.sql.functions._import org.apache.spark.sql.type...

蜉先生
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部