Java IDE的历史变迁及idea的使用
Java开发工具的历史变迁
JCreator
Jcreator是荷兰的Xinox Software公司开发的一个用于Java程序设计的集成开发环境(IDE),该公司成立于2001年;
JBuilder
JBuilder是Borland公司开发的针对Java的集成开发工具,该工具是收费的;
Borland公司成立于1983年,总部位于美国加州;
JBuilder 当时在Java集成开发工具中风靡一时,但不久后也逐步被新的工具所打败;
2009年5月6日,英国软件商Micro Focus宣布以7500万美元现金收购Borland软件公司;
eclipse
Eclipse最初是由IBM公司开发的替代商业软件Visual Age for Java的新一代Java集成开发环境;
2001年11月IBM将Eclipse贡献给开源社区,后来一直由非营利软件供应商联盟Eclipse基金会(Eclipse Foundation)管理,直到现在;
myeclipse
由美国Genuitec公司开发一款的基于Eclipse的Java开发集成环境,该公司成立于1997年;
MyEclipse Enterprise Workbench于2003年的推出,该工具是收费的;
MyEclipse,是在eclipse基础上加上自己的插件开发而成的功能强大的企业级Java集成开发环境,主要用于Java、Java EE以及移动应用的开发;
MyEclipse的功能非常强大,支持也十分广泛,尤其是对各种开源框架和技术支持相当不错;
netbeans
NetBeans是Sun公司(2009年被甲骨文收购)在2000年创立的开放源代码的供开发人员开发Java程序的集成开发环境;
NetBeans是一个始于1997年的一个大学学生计划,该计划后来发展成立了一家公司,进而推出一个商用版本的NetBeans;
1999年Sun公司收购了此公司,并于2000年6月将NetBeans作为开源项目对外发布;
Intellij IDEA
IntelliJ IDEA简称IDEA,它是 JetBrains 公司下的Java集成开发环境,在业界被公认为是最好的Java开发工具之一;
JetBrains是捷克的一家软件公司,该公司总部位于捷克共和国的首都布拉格,开发人员以严谨著称的东欧程序员为主,旗下开发了多款软件开发工具;
官方网站:https://www.jetbrains.com/
Intellij IDEA工具已经有很长的历史了,2001年1月发布IntelliJ IDEA 1.0版本,只是一直没有被大量使用;
IntelliJ IDEA以前是收费软件,不过在2009年以后开始推出了免费的社区开源版本;
目前IntelliJ IDEA有免费的社区版(功能相对较少),和收费的旗舰版(功能比较全面);
JetBrains下的产品
IntelliJ IDEA
主要是针对 Java 的集成开发工具;
AppCode
主要针对 Objective-C / Swift 的集成开发工具;
CLion
主要针对 C / C++ 的集成开发工具;
GoLand
主要是针对 Go 语言的集成开发工具;
PhpStorm
主要是针对 PHP 的集成开发工具;
PyCharm
主要是针对 Python 的集成开发工具;
RubyMine
主要是针对 Ruby 的集成开发工具;
WebStorm
主要是针对 JavaScript、HTML5、CSS3 等前端技术的集成开发工具;
Rider
主要是针对 .net 的集成开发工具;
DataGrip
主要是数据库可视化的连接和操作工具;
Idea的特点
IntelliJ IDEA 主要用于支持 Java 语言的开发工具,支持目前几乎所有的主流技术和框架,擅长于企业应用、移动应用和 Web 应用的开发;
IntelliJ IDEA 非常地人性化、智能化,可自我定制,开发效率极高;
Idea版本
IntelliJ IDEA 分为“旗舰版”和“社区版”;
旗舰版(Ultimate Edition)为收费版本,功能强大,有30天免费试用期;
社区版(Community Edition)为免费版本,功能较旗舰版少了很多,可一直免费使用;
一般地,IntelliJ IDEA 大版本为一年迭代一次,大版本下的小版本迭代时间不固定,快则一个月,慢则两至三月迭代一次;
目前最新版本为:IntelliJ IDEA 2018.2.4
Idea使用前置说明
1、由于Idea在亚洲没有设服务器,所以在使用idea过程中,比如访问插件库、更新版本等操作时可能出现一些问题,这是由于网络问题导致的;
2、Idea 对硬件的基础要求虽然不是很高,但在实际的开发中,特别是开发大型 Java Web 项目时,2G 内存基本上不够用,4G内存可以使用,就是会比较卡顿,最好是 8G 内存或是以上;
3、Idea与eclipse在使用上有一些区别,我们需要转化思维,不能按照eclipse的方式去学习Idea;
4、由于我们一直以来习惯了eclipse,所以我们在学习idea的时候,可能有一段时间不适应,甚至产生放弃的念头,这也是正常的,坚持几天就好了;
Idea的下载安装
官方网站下载:https://www.jetbrains.com/
Idea的下载包有两种格式:一个是exe的安装版,一个是zip的解压缩版;
exe格式的安装版需要安装,而zip格式的解压缩版不需要安装,直接解压即可使用;
推荐使用zip的解压缩版,直接解压即可使用,方便;
Idea目录结构
Idea解压后的目录结构如下:
bin 是 IDEA 的可执行程序目录;
help 是 IDEA 的帮助文件目录;
jre32 是IDEA自带的32位JRE环境;
jre64 是IDEA自带的64位JRE环境,故IDEA可在未安装 JDK 的计算机上进行Java语言的开发;
lib 是IDEA依赖的库文件目录,里面有很多的 Jar 文件;
license 是 IDEA 的许可证文件目录;
plugins 是IDEA的插件目录;
redist 是IDEA中索引机制所依赖的redist库目录;
两个 .txt 说明文件和一个注册表文件;
Idea启动运行
如果电脑是32位,则双击idea.exe启动运行idea,如果是64位则双击idea64.exe启动运行;
1、让你选择是否导入已经存在的旧配置信息;
2、让你选择Idea的主题颜色;
3、设置支持的框架,可以自定义,没有选择的将不支持,但可以后面在插件一栏中再加上;
4、进入Idea创建Project界面;
命令 Create New Project 创建一个新项目;
命令 Import Project 导入一个已有项目;
命令 Open 打开一个已有项目;
命令 Check out from Version Control 可以通过服务器上的项目地址 Checkout Github 上面项目或是其他 Git 托管服务器上的项目;
注:Idea启动后默认会在C:\Users\电脑用户名\.IntelliJIdea2017.3用户目录下创建配置和缓存索引信息目录;
创建Project
通常第一次使用idea,我们会选择创建一个project;
第一次启动使用idea,这里创建的project实际上等价于创建一个工作空间,所以我们通常选择创建一个空的project;
Project与Mudoule
IntelliJ IDEA 是没有类似 Eclipse 的工作空间的概念(workspaces ),Idea最大单元就是 Project;
如果你想同时打开多个项目,IntelliJ IDEA 提供的解决方案是打开多个项目实例,也就是打开多个Idea,也就是启动多个idea,这样的话,当然不是很方便;
所以,我们要在一个idea中看多个项目,则通过创建一个空的project作为工作空间,然后在该空的project下创建多个module作为我们的项目工程;
Idea的界面介绍
菜单栏
工具条
导航条
左侧导航区域
中间编辑操作区域
右侧导航区域
底部导航区域
-----------------------------------idae 的应用-------------------------------------------
创建Java项目
建议在一个空的Project下创建我们的Java项目,也就是说我们在一个空的Project下创建一个Java module;
方式:在菜单栏File-->New-->Module-->Java
项目配置说明
.iml为模块module的配置文件;
.idea为工程Project的配置文件;
IntelliJ IDEA 是一个没有 Ctrl + S (保存)的 IDE,所以每次修改完代码你只管运行或调试即可,无需担心保存或者丢失代码问题;
虽然IntelliJ IDEA不需要按Ctrl + S 保存代码,但对于代码的错误检查也是实时的,无需担心代码编译问题;
如果需要整体编译项目,则需要手动build一下;
在菜单栏File-->project结构下设置sdk,紧接着还可以设置语言级别,java8还是java9等,当然sdk选择要和语言级别选择保持版本一致;
Idea字体编码设置
通过菜单中的 File -->Settings 进行设置(IntelliJ IDEA基本所有设置都在该菜单下);
字体设置
主题的字体一般不建议修改,主题就是指整个Idea工具;
代码开发的编辑器的字体建议修改,在Editor下的Font选项修改,建议18号字;
编码设置
文件编码及工程编码设置,在Editor下的File Encodings选项进行修改,建议全部改为UTF-8;
Java项目打jar包
在菜单栏File-->Project Structure
1、配置Module的依赖,在右侧Dependencies下添加该Java项目依赖的第三方jar(如果没有不用添加);
2、配置Artifacts,在中间区域选择添加+符号-->从模块和依赖,选择模块和主类,选择拷贝到输出目录;
3、在菜单栏Build-->Build Artifacts... 选择刚才创建的Artifact,点OK将在输出目录下生成jar文件;
创建web项目
创建一个Module
选择Java Enterprise,选择Java EE8(或者Java EE 7/6),选择创建web.xml (此处有小bug,可能web.xml不能出现)
配置tomcat
在菜单栏 run-->Edit Configurations下设置,可以设置tomcat,端口,jvm等,可以配多个tomcat;
启动tomcat,点击绿色三角形箭头即可;
停止tomcat点击红色方形的按钮,停止按钮点击后有可能没有停止,通常会出现一个骷髅头表示没有停止,可以再点击一次;
有时候即使点了两次,Tomcat 容器也不一定能完全停掉,这时候很容易出现端口被占用,这时候你需要打开系统的资源管理器,手动 kill 系统上所有的 Java 进程;
Idea上的web部署
通常在开发的时候,我们的web项目部署到tomcat下调试运行,进行代码的开发,
idea开发web项目,并在idea工具中部署到tomcat下的步骤如下:
部署tomcat前,先配置好actifacts,
在菜单栏File -->project Structure-->Actifacts下选择添加+下的Web Application:Exploded -->From Module
在tomcat的Deployment下添加配置的Actifacts,并设置Application context
Idea打war包
打开Project Structure
配置Module的依赖,在右侧Dependencies下添加依赖的jar;
配置Artifacts,在菜单栏File -->project Structure-->Actifacts下选择添加+下的Web Application:Archive -->for xxx
在菜单栏Build-->Build Artifacts... 选择刚才创建的Artifact,点OK将在输出目录下生成war文件
Idea的索引与缓存
IntelliJ IDEA 首次加载项目的时候,都会创建索引,而创建索引的时间跟项目的文件多少成正比;在 IntelliJ IDEA 创建索引过程即使你编辑了代码也是编译不了、运行不起来的,所以建议等IntelliJ IDEA 创建索引完成后再操作;
IntelliJ IDEA 的缓存和索引主要是用来加快文件查询,从而加快各种查找、代码提示等操作的速度;
但是在某些特殊条件下,IntelliJ IDEA 的缓存和索引文件也是会损坏的,比如断电、强制关机等,当重新打开 IntelliJ IDEA,很可能 IntelliJ IDEA 会报各种莫名其妙错误;
遇到此类问题,通过File-->Invalidate Cache and Restart清除缓存即可解决,一般建议点击 Invalidate and Restart,这样会比较干净;
索引文件所在目录地址:C:\Users\当前登录的系统用户名\.IntelliJIdea14\system
如果不用上述方法也可以删除整个 system来清除索引和缓存,当 IntelliJ IDEA 再次启动项目的时候会重新创建新的 system 目录以及对应项目缓存和索引;
Idea删除项目
idea删除项目或模块是无法物理删除的,只是逻辑上的删除,
要真正删除则需要进入所在目录,在磁盘上手动删除;
Idea代码模板设置
IntelliJ IDEA 默认新建类自带的类注释格式一般不够友好或是规范,所以我们一般需要自己根据公司编码规范进行设置;
菜单栏File-->Settings-->Editor-->File and Code Templates 下进行设置;
选择不同的文件类型进行设置;
实时代码模板
在菜单栏File--Settings -->Editor 下的Live Templates下,比如输入sout即为System.out.println()打印;
还可以自定义实时代码模板;
maven设置
在File-->Build,Execution,Deployment -->Build Tools下可以设置maven;
可以指定 Maven安装主目录,maven的settings.xml位置和本地仓库位置;
创建maven项目
创建项目,可以选择不使用Maven提供的插件方式创建maven项目骨架,也可以选择使用比如xx-webapp,xxx-war的方式创建项目骨架;
maven项目编译和打包,在工作空间的右侧,展示maven projects区域,在lifecycle下展开双击对应的生命周期命令即能进行对应的操作;
maven的展开区域中还有一些功能按钮,比如可以查看jar包依赖关系等;
Idea插件的使用
IntelliJ IDEA 本身很多功能也都是通过插件的方式来实现的,IntelliJ IDEA 本身就开发了大量的插件集成到Idea工具中,也就是说Idea安装好之后就自带了很多优秀的插件;
官网插件库:https://plugins.jetbrains.com/
在菜单栏File -->Settings -->Plugins打开插件窗口;
IntelliJ IDEA 对插件进行了很好的分类:
All plugins 显示所有插件;
Enabled 显示当前所有已经启用的插件;
Disabled 显示当期那所有已经禁用的插件;
Bundled 显示所有 IntelliJ IDEA 自带的插件;
Custom 显示所有我们自行安装的插件,如果你自己装了很多次插件的话,这个选项会用得比较多;
启用的插件是被勾选的,如果要禁用一个插件,去掉勾选即可;
下面还有插件仓库,是idea官方提供的,可以下载安装,当然也可以从本地磁盘安装插件,浏览本地的插件文件进行安装,而不是从服务器上下载并安装;
由于插件仓库在国外,可能会出现显示不了插件列表,或是显示了插件列表,无法下载完成安装,这时候可以多试几次或者换个时间下载安装;
Idea安装MyBatis插件
MyBatis plugin插件,但这个插件是收费插件,不能直接使用;
Free Mybatis plugin,可以免费使用,可以用依稀这个插件;
IntelliJ IDEA配置Mybatis自动代码生成
配置一个插件:
<build> <plugins> <plugin> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-maven-plugin</artifactId> <version>1.3.6</version> <configuration> <!--配置文件的位置--> <configurationFile>src/main/resources/GeneratorMapper.xml</configurationFile> <verbose>true</verbose> <overwrite>true</overwrite> </configuration> </plugin> </plugins> </build>
配置代码生成文件:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd"> <generatorConfiguration> <!-- 指定连接数据库的JDBC驱动包所在位置,指定到你本机的完整路径 --> <classPathEntry location="C:/Users/jimly/.m2/repository/mysql/mysql-connector-java/5.1.44/mysql-connector-java-5.1.44.jar"/> <!-- 配置table表信息内容体,targetRuntime指定采用MyBatis3的版本 --> <context id="tables" targetRuntime="MyBatis3"> <!-- 抑制生成注释,由于生成的注释都是英文的,可以不让它生成 --> <commentGenerator> <property name="suppressAllComments" value="true" /> </commentGenerator> <!-- 配置数据库连接信息 --> <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://192.168.230.128:3306/p2padmin" userId="root" password="123456"> </jdbcConnection> <!-- 生成model类,targetPackage指定model类的包名, targetProject指定生成的model放在eclipse的哪个工程下面--> <javaModelGenerator targetPackage="com.bjpowernode.p2p.admin.model" targetProject="src/main/java"> <property name="enableSubPackages" value="false" /> <property name="trimStrings" value="false" /> </javaModelGenerator> <!-- 生成MyBatis的Mapper.xml文件,targetPackage指定mapper.xml文件的包名, targetProject指定生成的mapper.xml放在eclipse的哪个工程下面 --> <sqlMapGenerator targetPackage="com.bjpowernode.p2p.admin.mapper" targetProject="src/main/java"> <property name="enableSubPackages" value="false" /> </sqlMapGenerator> <!-- 生成MyBatis的Mapper接口类文件,targetPackage指定Mapper接口类的包名, targetProject指定生成的Mapper接口放在eclipse的哪个工程下面 --> <javaClientGenerator type="XMLMAPPER" targetPackage="com.bjpowernode.p2p.admin.mapper" targetProject="src/main/java"> <property name="enableSubPackages" value="false" /> </javaClientGenerator> <!-- 数据库表名及对应的Java模型类名 --> <table tableName="u_permission_info" domainObjectName="PermissionInfo" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"/> </context> </generatorConfiguration>
配置Maven运行
mybatis-generator:generate -e
Idea中的代码调试
F7:在 Debug 模式下,进入下一步,如果当前行断点是一个方法,则进入当前方法体内,如果该方法体还有方法,则不会进入该内嵌的方法中
F8:在 Debug 模式下,进入下一步,如果当前行断点是一个方法,则不进入当前方法体内
F9:在 Debug 模式下,恢复程序运行,但是如果该断点下面代码还有断点则停在下一个断点上
Alt + F8:在 Debug 的状态下,选中对象,弹出可输入计算表达式调试框,查看该输入内容的调试结果
查看所选对象的方法常用有三种方式:
选中对象后,使用快捷键 Alt + F8
选中对象后,拖动对象到 Watches
选中对象后,鼠标悬停在对象上 2 秒左右
Idea的搜索
类的搜索
在菜单栏的Navigate下的Class...
文件的搜索
在菜单栏的Navigate下的File...
全部搜索
在菜单栏的Edit-->Find--Find in path
在工具条最右侧的搜索图标按钮,点击打开;
连续按两次Shift键;
上面所有的搜索框被调出来后,按esc键取消;
Postfix Completion
后缀自动完成:
fori
100.fori
sout
new User().sout 即可打印出user对象
nn
判断多少不等于null, user.nn
return
user.return
查看类的方法和字段大纲
打开当前类,点击左侧的结构大纲即可查看;
查看类的方法调用层级
右键该方法,Find Usages 或者按快捷键:Alt + F7
Idea查看接口的实现类
点击接口左侧的绿色圆点, 出现的列表就是该接口被实现的类;
查看接口中方法的实现,也是点击接口方法前面的绿色圆点; (快捷键:Ctrl+Alt+B)
Idea自动导入包
在使用idea开发java项目的时候,经常需要导入jdk或者是第三方类库的类,我们知道,在Idea中导入第三方的类,通过 Alt + Enter快捷键,但是这样自己手工导入的话,非常麻烦,效率很低,Idea提供了更高效的方式;
在菜单栏File-->Settings-->Editor-->General-->Auto Import 下设置:
选项1,IntelliJ IDEA 将在我们书写代码的时候自动帮我们导入需要用到的包,但是对于那些同名的包,还是需要手动 Alt + Enter 进行导入;
选项2,IntelliJ IDEA 将在我们书写代码的时候自动帮我们优化导入的包,比如自动去掉一些没有用到的包;
Idea常用快捷键
Ctrl + Y 删除光标所在行 或 删除选中的行;
Ctrl + X 剪切光标所在行 或 剪切选择内容;
Ctrl + F 在当前文件中进行文本查找
Ctrl + R 在当前文件中关进行关键词替换;
Ctrl + C 复制
Ctrl + V 粘贴
Ctrl + Z 撤销
Ctrl + G 在当前文件跳转到指定的行
Ctrl + / 注释光标所在行代码,会根据当前不同文件类型使用不同的注释符号;
Ctrl +Shift + / 多行代码注释;
Alt + Insert 代码自动生成,如生成对象的 set / get 方法,构造方法,toString() 等;
Ctrl + Alt + L 格式化代码,可以对当前文件和整个包目录使用;
Ctrl + Shift + / 代码块注释;
Alt + Enter 导入引用的jar中的类;
ctrl +shift + alt +j 选中当前文件中的所有相同的词或字符,可直接对其进行一次性全部修改;
Shift + F6 重构代码,重命名等;
Shift + Tab 代码往前缩进;
Ctrl + Alt + O 优化导入的类,清理无用的导入;
Ctrl + Shift + U 对选中的代码进行大/小写交替转换;