本文主要面向刚入门java、刚入手IDEA的新手,说明IDEA的helloworld项目的编写以及常见配置。

今年新开设了软件构造课程,老师推荐的IDE是Eclipse;考虑到有同学可能会更倾向于使用IDEA,所以我整理了自己在配置IDEA及jdk过程中遇到的问题,撰此文便于和同学一起交流学习。初次写作,如有谬误,敬请指出。

文章目录

    • IDEA简介及HelloWorld项目
      • IDEA下载
      • IDEA:helloworld!
    • JDK配置:以jdk1.8为例
      • JDK和虚拟环境
      • jdk1.8的下载和配置
    • 界面UI及个性化
      • 主题配置
      • 编辑和查看设置
    • 版本控制:Git
      • Git下载
      • Git配置
      • Git使用
      • 多余的话
    • 快捷键及模板

IDEA简介及HelloWorld项目

IDEA下载

IntelliJ IDEA(以下简称IDEA)是JetBrains公司发布的一款javaIDE产品,功能配置相较于另一个javaIDE Eclipse更加便利、人性化,目前在业界十分流行,隐隐有赶超Eclipse之势。

目前IDEA分为专业版(Ultimate)和社区版(Community):专业版功能齐全但是要收费,社区版是免费的,少了一些功能,但是对于学生而言基本够用了。😎

点击进入官方下载链接:IntellJ IDEA下载

选择右边的Community版本进行下载。下载完毕得到图示安装程序(这个是我老早之前的下载的):

接下来点击进入安装界面:选择路径时不要有中文,建议不要有除了字母数字下划线以外的字符(忽略我的路径空格啦);大约需要1GB的空间,确保自己的空间够用;

以下分别选择了:
建立64位启动器——64位系统就要选64位啦;

创建对.java后缀的文件的IDEA打开方式——就是以后点击.java文件就可以选择用IDEA的方式查看啦;

添加Path路径——环境变量里也可以设置,现在直接设置掉更方便,以后可以根据这个环境变量找到这个启动器,利用IDEA打开.java文件;

接下来根据提示,重启电脑

提示导入IDEA的设置(Import IntelliJ IDEA Settings From...),这是因为IDEA的配置可以导出成jar包,再次导入就可以用这个jar包的配置了。初次使用的人就选择不导入(Do not import settings);

同意协议之后,进入基础个性化设置
之后也可以在Settings | Appearance & Behavior | Appearance里添加喜欢的界面UI主题;

这里的插件选择我先不选了,因为这里插件可能不是自己需要的版本;之后课程需要用到的Git和JUnit都可以在需要用的时候自己下载配置;当然也可以利用IDEA的 Settings | Plugins 自动化地下载导入插件(可能需要配置国内的源,国外的源下载速度实在太慢啦😓)

IDEA:helloworld!

终于设置完啦,我们可以开始使用IDEA啦,快点开看看!!

在初始界面我们可以看到以下选项:创建新项目、导入新项目、打开已有项目和更新版本控制的项目(这个将在后续的Git配置中提及),右下角还有配置的选项;

😝好激动呀!我们先创建一个新项目试试看!->Create New Project

在出现的界面左侧选择创建Java程序。其他的选项我们也看看:Android是安卓手机应用项目,javaFX是图形化应用项目、Maven项目就是利用Maven构建工具管理的项目,Gradle和Maven有点类似,Kotlin是JetBrains公司开发的代替java在安卓开发的语言。其他我就不太懂了;

在界面上方我们发现IDEA已经为我们下载配置了一个jdk,版本为11,但课程要求我们要用jdk1.8。哎呀真苦恼。别急,下一个单元jdk配置我会讲到怎么切换自己的jdk版本。

点击next,不要勾选从模板创建项目,再点击next。
新项目默认是存放在IdeaProjects里的,修改项目名称为HelloWorld,点击finish。

初次创建项目时,IDEA会花一些时间创建项目的引和缓存,别急着编写代码,不然可能会出现一些错误。
可以在IDE界面的底部看到当前处理的进程。

完成后,我们查看一下右边的项目目录,顺便说明一下IDEA的工作目录结构:IDEA是以Project作为项目最大的单位的(相当于Eclipse的Workspace),以Module作为Project下一级别的单位(相当于Eclipse的Project);一个IDEA的Project下可以包含多个Module。目前我们编写的项目都不复杂,先不考虑用module了。
图示即为HelloWorld项目的Project目录结构。

HelloWorld对应的就是项目文件目录,子目录里的.idea目录是IDEA的配置文件,对于源代码是没有影响的,但是它存放着编辑代码时的配置(jdk、输出文件路径、编码标准、本地历史记录等等),在IDEA里运行源程序要用到;src目录下就可以放我们编写的包以及源文件;HelloWorld.iml是IDEA自己对当前项目的配置文件,也用于标识当前目录为IDEA项目目录(就像Eclipse里的.project文件一样),同理,要想在IDEA里正常编写,就不要轻易动这些配置文件咯。

External Libraries下会包含我们项目里用到的库文件(未必和项目文件目录在同一个目录下),可以看到已经有了jdk11的标准库文件了,后面的目录对应的就是我们创建HelloWorld项目时的jdk路径。以后如果用到其他的库文件(包括第三方库),都会放在这个目录下。按照窝工的软件构造课程要求,我们在完成项目编写后,要把第三方库的文件拷贝一份放在自己创建的HelloWorl/lib文件夹下的(jdk版本如果和课程要求不同,也要把jdk相应库文件拷贝一份进去哦)。

Scratches and Console可以包含临时的编辑环境,不是很懂,也暂时用不着,略过。

我们开始创建源文件吧!

右击 src,new | Java Class,输入Hello(会作为该java类文件中唯一的公开类名), 回车。哇!文件出来了。接下来,我们在Hello类的括号里输入:psvm,IDEA会自动弹出模板提示,回车。main方法完整的方法头就自动出来了。(我们要想运行一个程序,就一定要编写一个main方法,而且方法头规范就这么写,不要去改动)接下来在main方法的括号输入:"Hello World".sout,弹出提示,再回车,我们的代码就写好了。如图所示。

IDEA会识别特定缩写,并联想模板,给出提示。我们最后一节会提一下这种运用代码模板的方法;

接下来运行源文件。编写完main后,编辑区左边出现了绿色的三角形。点击绿色三角形,选择Run 'Hello.main()',稍等片刻,IDEA界面底部就会出现Run窗口,出现的就是我们想要的输出了!

此时,我们同时也看到HelloWorld项目文件夹下多了一个out目录,一层层点开它,我们发现多了一个Hello.class文件,这个就是Hello类对应的java字节码文件了!整个编译运行的过程,就是编译器将运行main方法所对应的所有源文件(.java)编译成java字节码文件(.class),再在java虚拟机上运行字节码文件,如此产生我们想要的结果。

至此,我们的HelloWorld项目终于完成了!给自己一个掌声吧!👏
有耐心看到这里真是太辛苦您了。

如果还有其他方面的配置需要,可以接着看看。

JDK配置:以jdk1.8为例

在讲JDK配置之前,有兴趣的同学我们可以先来谈谈JDK是啥,虚拟环境是啥,为啥要用JDK;
希望直捣黄龙的同学可以直接看本节的结尾部分,跳过这部分不影响理解。

JDK和虚拟环境

什么是JDK?首先上结论,总结为以下公式及其注解:

JDK == 编译工具(javac+jar+...+ jre(jvm+核心类库)


JDK == java开发工具包(java develop kit);
javac == java编译器
jar == .jar结尾的java包文件
jre == java运行环境
jvm == java虚拟机
核心类库 == 该版本jdk对应的标准库文件

观察jdk1.8.0_241的目录:

其中最核心的部分在于bin、jre、lib(不同版本的jdk目录结构略有调整,跟前面总结的有点不太一样,许多部分有融合和重组,但功能应该是差不多的);

bin目录对应了java的编译好的二进制命令。如果需要在系统命令行中运行java,就需要设置环境变量Path变量到这个bin文件;其中包括了编译.java源程序所需要的 javac.exe。

jre目录对应的是java的运行环境,如果除去jdk的其他部分,只保留jre,java编写好的可执行程序也是可以运行的。比如说Minecraft就是用java编写的。下载Minecraft时,也会下载一个jre,登录Minecraft时就要配置一个java路径的选项,其实就是找到jre。jre顾名思义,是java运行环境,它的内部包含了java虚拟机(jvm)以及部分库文件。jvm就是java的核心。java语言编写的.java文件,经过jdk中javac.exe编译得到java字节码文件,这个文件是在任何平台上的jvm都可以解释而后执行的,这就保证了java语言的跨平台性。个人观点,java编译并执行的到生成字节码的阶段是传统意义上的“编译”,而从字节码文件经过jvm解释生成底层指令的过程则是传统意义上的“解释”。因此java应该既不能说是解释型的语言,也不能说是编译型的语言。

lib目录中包含的是java的标准库提供的API(应用编程接口)。就是许多前人编写好的java程序打成可以完成特定功能的包,我们可以根据他们提供的接口标准调用之,得到我们想要的输出。如此体现了java程序的复用性。

综上所述,JDK包含开发java程序时所需要的工具(bin中的javac.exe等二进制可执行程序)、环境(jre)、资源(lib),JDK就是一个工具的集合;

我们所说的虚拟环境,浅显点理解就是通过编程工具(JDK)和系统环境区别开来的;如果没有建立联系,系统环境就无法利用虚拟环境里的编程工具,而虚拟环境可以利用自己内部的编程工具。这样就好像在系统环境内部又多了一个更小的环境(虚拟环境)一样。
详细点说,当我们还没有将java的路径添加到系统环境变量Path时,在系统目录下直接打开命令行,是没办法执行java程序(利用jre),也没办法编译java程序(利用javac.exe)的。
命令行输入命令时,如java -version。会先默认在系统根目录下查找对应的命令“java”,如果能遇到名字为java的可执行文件(即java.exe)就会运行它,并将 -version作为参数传给该程序。但是如果当前目录里没有,命令行就会到环境变量里的Path列表里一个个找,找到就运行它,没有就报错。这就是Path环境变量存在的意义。系统根目录下打开的命令行,通过Path就能够找到更深层次的目录下的对应可执行文件。

哎呦喂,我扯远了,但是写这么多我又舍不得删。 😓
先扯回来,IDEA终究只是个集成开发环境,它的功能是由各种插件构成的,包括JDK。
JDK如果安装到其他的目录下,我们在IDEA可查询的目录下找不到JDK,那么我们就需要在IDEA里配置JDK的路径,完成IDEA和JDK之间联系的构建,让IDEA找的到JDK,能够调用JDK内部的各种功能。
就像之前创建HelloWorld时第一个界面中默认选择IDEA自带的jdk11一样,就像利用IDEA的界面,调用jdk11的编译和运行功能一样。
这样,系统环境若是联系不到JDK,IDEA自身就好像在独立的虚拟环境里面进行编程。

以上内容基本上不影响以下内容的理解,以上只是我写爽了 。

jdk1.8的下载和配置

我们直入主题,开始下载jdk吧!

点击链接jdk1.8下载主页
找到自己系统对应的版本

我的系统是window64位,就选择这个吧!

同意条款后,开始下载,同样路径上不要有中文以及其他奇怪的字符;最多下4、5个小时吧。嫌慢的可以找一些网上的资源,建议还是官方下载。

诶诶等等,有同学要问啦,为什么下的是jdk 8,我们要下的不是jdk1.8吗?其实二者是一样的啦。
JDK在之前,都是以jdk1.x命名的,但是零几年时,由于版本功能上的大更新,所以JDK连命名方式也开始发生了变化,开始用jdkx进行命名。jdk1.8是沿用以前的命名方式,jdk8是现在习惯的命名方式,之后配置时看到1.8,就对应8。

下载完成后,我们要开始配置IDEA啦。打开IDEA,打开 File | Project Structure | SDKs,这个要配置的是平台软件开发包。依次选中图示,可以添加一个SDK选项,并关联到相应路径的JDK版本。这里选中我们刚下载的jkd1.8。

添加sdk后,同样在 Project Structure 目录下找到Module,在这个目录下,我们选中我当前处理的项目(lab1),然后在Source里选择适合我们目标jdk版本的language level。没完,还要在Dependencies里选中我们刚刚设置的SDK(jdk1.8).


另外,在Project Structure | Project 里也设置 Project SDK和Project language level:

确认更改,如果没有变化,可以重启一下IDEA。
这是我们查看目录下的External Libraries,标准库文件已经替换程jdk1.8的了。

就这样,jdk版本的配置就完成啦。🙌
另外一说,本来java compiler也是要替换以下版本的,但是IDEA能够自动根据当前设置的language level确定java compiler的版本。具体可以查看 File | Settings | Build, Execution, Deployment | Compiler | Java Compiler.

到目前为止JDK版本其实就已经配置好了,可以在IDEA对应的虚拟环境里运用jdk1.8进行编程。如果有兴趣,我们可以再说一下最开始讲的虚拟环境的事情。
很多博客在说明装JDK时都会讲到在环境变量里添加相应Path变量,其实如果你没有在系统目录下用命令行运行该版本jdk的需求的话,就没有必要配这个。
打开IDEA内置的命令行,这个命令行关联的就不是系统环境,而是IDEA项目对应的虚拟环境了。在执行命令时,就不仅会搜索当前IDEA项目所在目录,还会搜索我们刚刚配置好的jdk命令。
如图,输入java -version,输出当前jdk版本为1.8.

如果你有在系统环境下也配置一个jdk版本,让系统环境下的命令行也能执行该版本jdk的命令的需求。(windows10系统)可以在windows搜索框中搜索“环境变量”,打开的到“系统属性”的配置面板,点开“环境变量”。
接下来的操作选择在用户变量里进行还是在系统变量里进行都没问题,区别只在于是否所有使用此电脑的用户共享配置而已。

这里看的到我已经在系统变量里配置了一个JAVA_HOME变量,可以新建里创建这个变量,变量的值对应于你需要配置的jdk路径
这里我的就是C:\Java\jdk-13;接着,点击对应栏目下的Path,新建Path,我们需要的是jdk路径下的bin目录下的可执行文件,所以加上%JAVA_HOME%\bin,两个%表示中间这个是一个环境变量,命令行在根据这些Path寻找可执行文件时就可以将这个环境变量替换成对应的路径,解析出绝对路径,在绝对路径下寻找。

配置完成后点击确定,最好重启一下。
现在我们在命令行里看看java配置好了没:
按住win+R,输入cmd,回车,弹出系统环境下的命令行。输入java -version,输出版本信息(注意到这里是jdk13,和IDEA虚拟环境jdk版本不同)。

界面UI及个性化

编辑器界面体现的不仅仅是计算机人的代码风格,还有他们的美学追求和生活品味。

主题配置

下面说说如何配置IDEA的主题:

  1. 点击进入IDEA主题下载网站 riaway,这是一个国内的网站所以下载速度会快一点;
  2. 找到一个自己喜欢的主题并下载,得到一个jar包;
  3. 在IDEA中选择 FILE | Import Settings ,找到我们下载的jar包;
  4. 确定要从该jar包中导入的配置项目,确定,重启IDE;
  5. 就这样,一个辣眼睛的赛得儿朋克主题配置完成了;🤖
  6. 要想恢复官方自己的主题直接在Appearance设置一个官方主题就行了;

    更多相关设置请查看File | Settings | Appearance & Behavior菜单

编辑和查看设置

我们还可以进行一些便于编写和查看代码的配置。

  1. 选择File | Power Save Mode 可以进入阅读模式,不会出现代码提示(如果自己编辑时没有代码提示也可以查看一下是不是开启了这个模式);

  2. 可以右击编辑区上方的文件标签,选择Split Vertically/Horizontally,对应文件就可以和当前文件一起以并排或者并列显示;

  3. Settings | Editor | General 目录下,我们又可以找到许多配置项;比如可以在General中找到Mouse,勾选如图,由此可以用ctrl+鼠标滚轮控制字体大小。

    往下找到Other设置如图,即可在鼠标停留在标准库方法超过一定时长时提示方法文档信息

  4. Setting | Apparence & Behavior | System Settings可以设置启动时自动打开最近编辑的项目

IDEA的强大之处就在于功能配置引导的人性化,更多的功能就自己探索吧~~😀

版本控制:Git

窝工的软件构造要求咱学会使用各种现代编程工具,版本控制工具Git和Github的使用就属于必须掌握的一类。
但是如果不想输命令行的话怎么办呀,IDEA也提供了Git和Github的图形化接口,接下来说说怎么在IDEA上配置Git和Github。

Git下载

直接到官网下就太慢了,可以使用淘宝的镜像,传送门
👉Git for windows
把目录拉到最底下,选择类似于图示的目录;

选择符合自己系统的程序:(64位)

下载完成后,一般就使用默认的安装配置,一路点next(当然中间有个编辑器的选择,默认意味着要使用Vim了,不喜欢Vim可以查阅其他资料替换之);

Git配置

启动Git Bath(就是Git的命令行格式的交互程序)
配置信息:

git config --global user.name <用户名>
git config --global user.email <电子邮箱>

进入Settings | Version Control | Git,如图。选择安装好的Git的bin/git.exe,点击右侧Test,若链接成功则弹出提示。

接下来连接Github账户,同目录下选择Github,添加自已的Github账户即可;

Git使用

基本的配置已经完成啦。我们接着可以看看怎么使用了:
基础功能其实都在标题栏的VCS对应的目录下,以下就拿创建仓库举个例子。

创建仓库有两种方法:
一种是在Github上直接创建一个仓库,然后clone下来,在本地生成一个本地仓库;
另一种是在本地先编辑项目,再把项目发送到Github上创建一个新的仓库。

第一种方法:在Github上新建仓库的方式就不多说了,Github新手引导已经做得很好了。我们假设已经在Github上有仓库,这个仓库可以是自己的,也可以是别人的。想把仓库整个clone下来,从而建立自己的本地仓库,你可以选择 VSC | Get from Version Control...或者 File | New | Project from Version Control,出现如下界面。

URL就是仓库的网址(.git结尾的那种)。在仓库目录下点Clone or download即可找到

如果已连接自己的Github账户,还可以直接选定自己的仓库而不用输入URL:

完成连接后,IDEA会询问是否要作为一个IDEA项目打开,确定即可。

如果你想用第二种方法:可在编写好项目后,选定 VCS | Import into Version Control | Share Project on Github,接着就输入项目名、远程仓库名和描述,并进行初次的提交即可。相当于:

git init
git remote add <远程仓库名>  url
git add * 
git commit -m "..."
git push

有了git管理的IDEA项目会在工具栏出现Git的快捷选项:

多余的话

因为课程对最终提交上去的目录有一定要求,有的同学可能会看那些多余的文件不爽,尝试用.gitignore忽略这些文件。这里我想提一下,首先.gitignore必须在添加文件修改到缓冲区之前就对要忽略的文件进行标注,否则这些忽略是无效的。另外,有时.gitignore选择忽略了一些IDEA的配置文件,会导致文件结构变奇怪,可能是配置文件失效了,我暂时没搞懂什么原理。总之使用.gitignore时要注意点就是了。
具体操作可以看我的另一篇博客:利用.gitignore简化Git仓库目录,从而让Github上的目录符合课程要求。按照步骤来一般不会错。

如果还是希望用命令行的形式进行这些提交,可以在IDEA里打开Terminal,即可在当前项目目录下进行操作。

考虑到本课程基本git使用不会太复杂,一般也不会用到master以外的分支,以下列出常用的Git操作:

git init 			# 初始化git仓库
git add * 			# 添加所有文件的更改和新建文件
git commit -m "..." # 提交缓存区并添加注释
					#(不加注释会强制使用Vim加注释)
git remote add <repo_name> <url> # 设置远程仓库
git pull 			# 从远程仓库拉取最新更新
git push 			# 向远程仓库推送最新的提交

顺带一提,其实IDEA本身也存有历史记录,选定一个文件,右键 | local history | show history,即可查看该文件的历史修改情况。

快捷键及模板

这一块就长话短说吧。作业写不完了。😓
授人以鱼不如授人以渔。

我们可以在Settings | Keymap设置和查看快捷键,右侧的输入框可以根据功能的名称找到快捷键,它右边还有个放大镜图标点开可以根据键盘输入找到对应指定快捷键的功能;

模版是帮助编程人员更快的输入代码的工具。在第一节HelloWorld项目中我们运用了psvm"Hello World".sout的两个模板,模板可以在Settings | editor | General | postfix completionSettings | editor | live templates找到,前者是不能动的,后者可以更改,也可以自行添加。

更多推荐

IntelliJ IDEA新手入门一条龙