Intellij Idea 简明教程
Intellij Idea - Introduction
IntelliJ 是 Java 领域功能最强大且最受欢迎的集成开发环境 (IDE) 之一。它由 JetBrains 开发和维护,同时提供了社区版和旗舰版。这款功能丰富的 IDE 可实现快速开发,并有助于提高代码质量。
What is IDE and its benefits?
IDE 即集成开发环境。它整合了多个工具,使得软件开发流程更容易、更强大且更不容易出错。与普通文本编辑器相比,它拥有以下优势 −
-
与编译器、调试器、版本控制系统、构建工具、各种框架、应用程序分析器等实用工具集成。
-
支持代码导航、代码补全、代码重构和代码生成等功能,可推动开发流程。
-
通过插件支持单元测试、集成测试和代码覆盖率。
-
提供丰富的插件集,可进一步增强 IDE 的功能。
Features of IntelliJ
IntelliJ IDEA 拥有部分顶级的 Java 代码补全功能。其预测算法能够准确地假定编码人员试图输入的文本,并为其补全,即使编码人员不知道特定类、成员或任何其他资源的确切名称。
Deep Insight
IntelliJ IDEA 真正理解且 deep insight 您的代码以及编码人员的上下文,这使得它在其他 Java IDE 中独一无二。
-
Smart code completion − 它支持基于上下文的代码补全。它给出当前上下文中可应用的最相关的符号列表。
-
Chain code completion − 它是一种先进的代码补全功能,会列出可以通过方法或 getter 在当前上下文中访问的可应用符号。
-
Static member’s completion − 它允许你使用静态方法或常量,并自动添加所需的 import 语句来避免编译错误。
-
Detecting duplicates − 它即时找到重复代码片段,并对此向用户发出通知/建议。
-
Inspections and quick-fixes − 无论 IntelliJ 何时检测到你即将出错,都会在同一条线上弹出一个小型的灯泡通知。点击它会显示建议列表。
Developer Ergonomics
IntelliJ IDEA 是围绕编程原则设计的,即开发人员应该能够尽可能少地分心。因此,在这种情况下,编辑器是屏幕上唯一可见的东西,拥有针对所有其他与编程无关的功能的专用快捷键。
-
Editor-centric environment − 快速弹出窗口有助于在不离开当前上下文的情况下检查其他信息。
-
Shortcuts for everything − IntelliJ IDEA 几乎针对所有内容都有键盘快捷键,包括快速选择、在工具窗口之间切换等等。
-
Inline debugger − 内联调试器允许你在 IDE 本身内调试应用程序。它使得开发和调试过程变得顺畅。
Built-in Developer Tools
为了帮助开发人员组织他们的工作流程,IntelliJ IDEA 为他们提供了惊人的工具集,其中包括反编译器、Docker 支持、字节码查看器、FTP 和许多其他工具 −
-
Version control − IntelliJ 支持大多数流行版本控制系统,如 Git、Subversion、Mercurial、CVS、Perforce 和 TFS。
-
Build tools − IntelliJ 支持 Java 和其他构建工具,如 Maven、Gradle、Ant、Gant、SBT、NPM、Webpack、Grunt 和 Gulp。
-
Test runner and code coverage − IntelliJ IDEA 让你能轻松执行单元测试。IDE 为包括 JUnit、TestNG、Spock、Cucumber、ScalaTest、spec2 和 Karma 在内的主要测试框架包含了测试运行器和覆盖工具。
-
Decompiler − IntelliJ 带有一个针对 Java 类的内置反编译器。当你想查看没有源代码的库内部时,你可以不用任何第三方插件就做到。
-
Terminal − IntelliJ 提供内置终端。根据你的平台,你可以使用命令行提示符,如 PowerShell 或 Bash。
-
Database tools − IntelliJ 提供数据库工具,这让你能连接到实时数据库;运行查询;浏览并更新数据;甚至在 IDE 本身内,以可视化界面管理模式。
-
Application server − IntelliJ 支持主要应用程序服务器:Tomcat、JBoss、WebSphere、WebLogic、Glassfish 和许多其他服务器。你可以将制品部署到应用程序服务器上,并在 IDE 本身内调试已部署的应用程序。
-
Docker support − 通过一个单独的插件,IntelliJ 提供一个专用工具窗口,这让你能连接到本地运行的 Docker 计算机。
Comparison between Ultimate and Community Edition
Ultimate Edition 旨在协助 Web 和企业开发,而 Community Edition 旨在用于 JVM 和 Android 开发。让我们考虑一下一些要点,它们将帮助我们理解这两个版本之间的比较 −
Feature |
Ultimate Edition |
Community Edition |
License |
Commercial |
开源,Apache 2.0 商业开发。 |
Java, Kotlin, Groovy, Scala |
Supported |
Supported |
Android development |
Supported |
Supported |
Maven, Gradle, SBT |
Supported |
Supported |
Git, SVN, Mercurial, CVS |
Supported |
Supported |
Detecting Duplicates |
Supported |
Not supported |
Perforce, TFS |
Supported |
Not supported |
JavaScript, TypeScript |
Supported |
Not supported |
Java EE、Spring、GWT、Vaadin、Play、Grails、其他框架 |
Supported |
Not supported |
Database Tools, SQL |
Supported |
Not supported |
Intellij Idea - Installation and Configuration
在本节中,我们将了解如何安装和配置 IntelliJ IDEA。这个过程的第一步是从选择版本开始。根据您的需要,您可以下载社区版或旗舰版。顾名思义,社区版绝对免费,并且我们也可以用它进行商业开发。然而,旗舰版是付费版本,我们可以免费评估 30 天。
Installation on Windows
IntelliJ 与 2003 年之前的几乎所有版本的 Windows 兼容。具体清单如下:Windows 10/8/7/Vista/2003/XP。建议在 Windows 上安装 IntelliJ 之前关闭所有其他应用程序。
Installation on Linux
要在 Linux 平台上安装 IntelliJ,您需要注意,它不捆绑 32 位 JDK,因此建议使用 64 位系统。
System Requirements
-
GNOME、KDE 或 XFCE 桌面环境
-
建议至少 2GB 的 RAM 以实现无缝使用
-
安装需要 300MB 的磁盘空间,另外还需要 1GB 的缓存空间
-
为了更好的可视化效果,建议使用 1024x768 的屏幕分辨率
Downloading and Installation
-
Downloading − 您可以在他们的官方网站下载适用于 Linux 的 IntelliJ。
-
Installation − 我们已经下载了 tar.gz 捆绑包。请注意,在我们的案例中,捆绑包的名称是 ideaIC-2017.2.5.tar.gz。它可能会随着版本/版本而改变。请使用合适的捆绑包名称。
First extract it using following command:
$ tar xvf ideaIC-2017.2.5.tar.gz
It will create new directory with idea-IC-172.4343.14 name.
Now change directory to idea-IC-172.4343.14/bin/ and execute idea.sh shell script as shown below:
$ cd idea-IC-172.4343.14/bin/
$ ./idea.sh
Follow on-screen instructions to complete installation procedure.
Configure IntelliJ
在两个平台上的配置步骤是相似的。要开始配置,请启动 IntelliJ 应用程序。或者,您可以在此向导中 import 现有配置。单击“下一步”按钮继续。
Step1 − 如果您正在使用旗舰版,则会弹出一个许可证激活窗口。选择免费评估选项,然后单击评估按钮,如下图所示。
Step 2 − 接受许可协议以继续,然后按照屏幕上的说明启动 IntelliJ。您将看到 IntelliJ 的欢迎屏幕。
Step 3 − 现在,是时候使用 IntelliJ 配置 Java Development Kit(以下简称 JDK)了。如果尚未安装JDK,请按照 here 中的说明进行操作。
-
在欢迎屏幕上,单击“配置”
-
从下拉列表中选择“项目默认设置”
-
选择“项目结构”选项
-
从“平台设置”菜单中选择“SDK”选项。
-
点击“加”图标并选择“JDK”选项。
-
选择 JDK 的主目录,然后按照屏幕上的说明。
Intellij Idea - Getting Familiar
在本章中,我们将更熟悉 IntelliJ IDEA。要讨论任何工具的优势和功能,人们必须熟悉该工具,而 IntelliJ 也不例外。
本章概述了 IntelliJ。本章从讨论 IDE 的可视元素、配置设置开始,最后以讨论 JVM 和平台属性结束。
Visual Elements
关于 IDE 的重要内容之一是其可视元素。识别和理解可视元素使您能够以一种 quicker 更简单的方式执行操作。以下屏幕截图及其上的标签显示了 IntelliJ 的主界面。
在主窗口的底部,有一个 status 栏,其中显示了有关文件的某些其他属性,例如其格式和编码类型。它还提供了切换当前文件只读属性的选项。您还可以在此处管理检查级别。
Working with Settings
本节提供了一些管理设置的重要提示。它使您可以导入、导出和共享 IntelliJ 设置。
Export Settings
它允许将当前设置导出为 jar 文件。
-
前往文件 → 导出设置。
-
导出设置窗口列出了与 UI、调试器、SDK 等相关的可用设置。
-
它提供了一个选择复选框。一旦完成选择,单击确定按钮即可将设置保存到本地磁盘。
Sharing Settings
IntelliJ IDEA 允许你在不同的实例之间共享你的 IDE 设置。当你想在团队或组织内应用相同的设置时,这特别有用。要实现此目的的前提条件是启用 Settings Repository 插件。它默认安装并启用。
要确保其状态 −
-
前往文件 → 设置 → 插件
-
Search settings repository plug-in
我们可以将当前设置存储在 GitHub/Bitbucket 上,并将其应用于其他实例。要存储当前设置 −
-
前往文件 → 设置存储库。
-
在上游 URL 对话框中键入 Git 存储库 URL。
-
单击覆盖远程按钮。
-
要将相同设置应用于其他实例,单击覆盖本地按钮。
Configuring JVM Options and Platform Properties
可以通过导航到 Help → Edit Custom VM Options 菜单配置 JVM 选项。以下是我们可以设置的一些重要的 JVM 选项。
-
–server − 它允许选择 Java HotSpot Server VM
-
-Xms<size> − 它设置初始 Java 堆大小。默认值为 128 MB。
-
-Xmx<size> − 它设置最大 Java 堆大小。默认值为 750 MB。
-
-Xss<size> − 它设置 Java 线程堆栈大小。
-
–XX − 它允许设置 GC 算法和其他属性。
Intellij Idea - Create First Java Project
现在我们通过 IntelliJ 获取实践体验的时候了。在本章,我们将创建第一个 Java 项目。我们将编写并执行传统的 Hello World 程序。本章解释了 Java 应用程序的编译和运行。
Create Project
对于与开发相关的任何内容,开发者都必须使用 IntelliJ 创建一个新项目。让我们遵循以下步骤来创建一个项目:
-
Launch IntelliJ.
-
转到 File → New → Project 菜单。
-
选择 Java 项目和相应的 SDK,然后点击“下一步”按钮。
-
如果要使用 main 方法创建一个 Java 类,则从模板复选框中选择“从模板创建项目”。
-
从下面所示的对话框中选择命令行应用,然后继续。
-
输入项目名称和目录位置。
-
单击完成按钮。
Create Package
包在 Java 项目下创建,可以单独创建,也可以在创建类时创建。让我们遵循以下步骤来创建一个包:
-
转到项目角度。
-
右键点击 Project,选择 New→Module 选项。
-
新建模块窗口类似于新项目。选择 Java 选项和相应的 SDK,然后点击“下一步”按钮。
-
Enter the module name.
-
单击完成按钮。
Intellij Idea - Deep Dive
本教程的前四章旨在让初学者对 IntelliJ 有一个基础了解。本部分深入探讨 IntelliJ,并讨论更多有关项目、其格式以及其他内容。
Understanding Modules
模块位于“项目”下列的一级。模块是一个独立的实体,可以独立于其他模块进行编译、调试和运行。单个项目可以包含多个模块。你可以随时添加或删除项目中的模块。
除此之外,我们还可以导入现有模块。请按照下列步骤导入现有模块 −
-
转到文件 → 项目结构。
-
选择模块并单击加号图标。
-
它将显示导入模块的选项。
Understanding Folders
Content root 是一个包含构成模块的所有文件的文件夹。一个模块可以有多个内容文件夹。文件夹分以下类型 −
-
Sources − 通过将此类别指定给文件夹,我们指示 IntelliJ 该文件夹及其子文件夹包含 Java 源代码,且它应作为编译过程的一部分进行编译。
-
Tests − 通过将此类别指定给文件夹,我们指示 IntelliJ 它是一个单元测试的位置。此文件夹可以访问源文件夹中的类。
-
Resources − 它表示项目中使用的各种资源文件,例如图像、XML 和属性文件。在编译过程中,此文件夹的内容会原样复制到输出文件夹。
-
Excluded − 排除的文件夹中的内容不会由 IntelliJ 编入索引。这意味着 IntelliJ 不会提供代码完成建议和其他提示。例如,输出目录和目标目录默认情况下被排除。
-
Test resources − 这类似于资源并且用于单元测试。
Understanding Libraries
库是由不同类的编译组成的。库使代码可以重用。在 Java 中,库可以封装在 ZIP、Jar 或简单的文件夹中。我们可以分三个不同级别定义库。级别为 - 全局、项目和模块级别。
-
Global level – 所有项目共享。
-
Project level – 项目的所有模块共享。
-
Module level – 属于这些模块的类共享。
Understanding Facets
构面是模块的扩展。它们增加对框架和技术的支持。将构面添加到模块时,IntelliJ 会识别出增加的支持。举例而言,编辑器中的提示和帮助、窗口栏中的新工具、依赖项下载等等。您可以从 File → Project Structure 窗口添加构面,如下所示:
Artifacts
构建产品是项目的输出。可以是简单的 JAR 文件、Java EE 应用程序或 Java EJB 应用程序。如果我们使用 Gradle 或 Maven 等外部构建工具,则 IntelliJ 会自动为它们添加构建产品。可以导航至 File → Project Structure 创建构建产品,如下所示:
Importing Existing Project
在本节中,我们将了解如何导入现有项目。我们可以通过两种方式导入项目:
-
从现有源代码导入
-
从构建模型中导入
当前,它支持 Gradle 和 Maven 构建工具。要导入项目,请:
-
导航至 File → New → Project from the existing source。
-
选择现有项目的目录、Maven 的 pom.xml 或 Gradle 的构建脚本。
-
点击确定按钮。
Project Formats
IntelliJ 支持两种项目格式,一种是 directory-based ,另一种是 file-based 。基于目录的格式较新,建议使用。默认情况下,IntelliJ 会创建基于目录的项目格式。您可以在创建新项目时选择项目格式。在新建项目窗口中,只需单击更多设置,如下面的图片所示:
Intellij Idea - Deep Dive into Editor
编辑器是开发人员花费其大部分时间的地方。精通编辑器是提高任何资源生产力的第一步。本章讨论了编辑器可视元素、最常见的编辑器操作及 SonarLint 插件,它提供了 lint 检查。
Visual Elements of Editor
IntelliJ 具备许多功能,其中包括旨在帮助开发人员浏览并了解其编码真实状态的可视元素。
现在让我们了解不同的功能 −
Labels
我们现在了解标签如何工作的。上面屏幕截图以数字标记。我们现在看看这些数字必须显示什么 −
-
在这里,我们可以看到行号及其他有用选项。如果您在类名和 main 方法之前仔细观察,会有一个小的绿色三角形。它提供了使用覆盖率运行、调试和运行应用程序的选项。只需单击三角形图标,它将提供选项。
-
您可以在行号 6 看见一个小加号符号。这是代码折叠功能。如果您单击该图标,则会展开它。代码折叠可以在类、方法、循环和其他块级别完成。
-
在行号 11 和 14,有两个箭头指向彼此。标记代表方法的开始和结束位置。如果您单击任何箭头,它将在该代码块上执行折叠操作。小窗口区域将显示某些操作时采取的各种符号;例如,它将显示断点符号、Java 注释符号。
Status Bar
在编辑器窗口的底部,有一个状态栏,它会显示有关当前文件和项目状态的信息。
-
在第一个图像中,16:1 分别表示当前行号和列号。
-
接下来是行分隔符,对于 UNIX 和 Mac OS,它是 \n,对于 Windows,它是 \r。
-
UTF-8 代表文件编码。
-
接下来是 lock 图标。我们可以单击它来切换文件的只读属性。
-
最后,有一个带有人脸的符号。它允许管理代码检查级别。当我们在编辑器中键入代码时,IntelliJ 检查代码 on the fly 并显示提示/建议。我们可以从此处确定检查级别。例如,我们可以完全禁用它,或仅允许检查语法等。我们还可以在此处启用省电模式,它将禁用后台代码分析和其他后台作业。
-
状态栏还显示项目操作信息。例如,第二个图像显示有关项目编译的信息。
Scratch files
它们是可操作的、可运行的和可调试的。创建草稿文件 −
-
转到 File → New → Scratch 文件。
-
选择您喜欢的语言。
-
它将在 IntelliJ-Installation-Directory\config \scratches 文件夹中创建一个文件。
Editor Actions
在本节中,我们将讨论 IntelliJ 中的编辑器操作。
Search and Replace
要搜索当前文件中的文本:
-
1. 导航到编辑器窗口中的文件,然后按下 Ctrl+F。
-
2. 它将显示文本框,在其中键入要搜索的文本。
-
3. 你可以在此处提供各种选项 - 大小写匹配、完全匹配、正则表达式等。
你可以在非常细化的级别执行搜索操作。例如,可以在项目、模块或目录级别进行搜索:
-
1. 按下 Ctrl+Shift+F 键组合。
-
2. 将出现一个新窗口;在此,你可以选择适当的级别。
要对当前文件执行替换操作:
-
1. 按下 Ctrl+R 键组合。
-
将弹出对话框,在此处输入要替换的文本。
-
此操作允许你替换单个匹配、全部匹配或跳过当前匹配。
要执行粒度级别的替换操作 -
-
按 Shift+Ctrl+R 键组合。
-
它可以让你以项目、模块、目录和其他作用域替换文本。
Clipboard History
当我们复制任何文本时,它将进入剪贴板历史记录。IntelliJ 维护剪贴板历史记录。要查看此历史记录,请按 Ctrl+Shift+V 键组合。你可以从该窗口中选择要粘贴的内容。
Code Completion
IntelliJ 会检查 code on the fly 并提供准确的代码完成。例如,当我键入单词 say 时 - 它会建议方法 sayHello() 和 sayGoodBye() 。
代码补全在处理类对象时建议类属性和类方法。
Generating Code
IntelliJ 提供生成有用的代码(例如构造函数、getter、setter、toString() 方法、override 方法等)的一种方法。按照以下步骤操作以在编辑器窗口中右键单击生成。
-
Select the Generate option.
-
它会列出可以为其生成代码的方法。
Code Inspection
我们已经看到 IntelliJ 识别语法错误、警告消息和 TODO 标记。除此之外,它还会建议代码改进、识别死代码和代码优化。例如,在下面给出的代码中,flag 的值始终为 true。因而 else 部分将永远不会被执行。
boolean flag = true;
if (flag == true) {
System.out.println("Value of flag is true");
} else {
System.out.println("Value of flag is false");
}
IntelliJ 识别到这一点并建议移除此代码块。
Comparing Files and Folders
按照以下步骤比较文件和文件夹 -
-
按住 Ctrl 键并从项目视角选择要比较的文件。
-
右键单击它并选择 Compare Files 选项。
-
它将打开一个比较窗口,其中突出显示了更改。
你也可以将从一个文件应用到另一个文件中的更改。如果你观察,有两个箭头标记以红色突出显示。单击它们以应用来自其他文件的更改。按 Ctrl+Z 撤消更改。
类似地,要比较文件夹,请从项目视角(而不是文件)选择文件夹。
Linting Code
Linting 是一个过程,其中 lint 工具分析源代码并报告与编码标准相关的潜在问题。它有助于提高代码质量。IntelliJ 支持可对代码进行 lint 的 SonarLint 插件。
About SonarLint
安装并启用 SonarLint 插件后,当您在编辑器窗口中打开一个文件时,它将开始自动分析代码。它将在 SonarLint 面板中报告问题。我们将在本节中详细讨论它。
SonarLint 支持流行的编程语言,如 Java、JavaScript、PHP 和 Python。
Installation
按照以下步骤安装 SonarLint −
-
Download SonarLint from here.
-
转到 File → Settings → Select plugins 。
-
单击 Install plugin from disk 按钮。
-
按照屏幕上的说明完成安装过程。
Intellij Idea - Code Refactoring
在本章中,我们将介绍代码重构以及它在 IntelliJ 中的工作原理。代码重构是对代码进行重组,而无需更改其功能和可用性。可以对代码进行重构以提高代码可读性、性能或移除未使用/重复的功能。IntelliJ 为代码重构提供了强大的支持。本章讨论了各种代码重构操作。
Rename
重命名操作可用于重命名方法、其参数、类属性、局部变量等。我们来在 IntelliJ 中创建以下类。
public class Employee {
private String name;
private String address;
private int age;
public Employee() {
this("Jarvis", "Palo Alto", 35);
}
public Employee(String name, String address, int age) {
this.name = name;
this.address = address;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "Employee{" +
"name='" + name + '\'' +
", address='" + address + '\'' +
", age=" + age +
'}';
}
public static void main(String args[]) {
Employee e = new Employee();
System.out.println(e);
}
}
现在,让我们将 Employee 类重命名为 Person 。此操作将在构造函数和 main() 方法中进行修改 -
-
Select Employee word
-
转到 Refactor → Rename 并将其重命名为 Person。
Replace Code Duplicates
这是强大的重构操作之一。IntelliJ 识别代码重复并用适当的代码替换它。让我们引入代码重复并对其进行重构。在编辑器中键入以下代码 -
public class Employee {
private String name;
private String address;
private int age;
public Employee() {
this("Jarvis", "Palo Alto", 35);
}
public Employee(String name, String address, int age) {
this.name = name;
this.address = address;
this.age = age;
}
public void setData(String name, String address, int age) {
this.name = name;
this.address = address;
this.age = age;
}
public void showEmployeeDetail() {
System.out.println("Name = " + name + ", Address = " + address + ", Age = " + age);
}
public static void main(String args[]) {
Employee e = new Employee();
e.showEmployeeDetail();
}
}
在此示例中,Employee(String name, String address, int age) 构造函数和 public void setData(String name, String address, int age) 方法完全相同。重构后,Employee(String name, String address, int age) 构造函数会修改为以下内容 -
public Employee(String name, String address, int age) {
setData(name, address, age);
}
替换重复部分 -
-
转到重构 → 查找并替换代码重复。
-
选择重构范围并按照屏幕上的步骤完成操作。
Copy Refactoring
在本节中,我们将了解如何将一个类复制到另一个类。让我们将 Employee 类复制到 Person 类。我们可以将其复制到现有模块或新建模块。IntelliJ 将根据它进行必要的更改。按照以下步骤执行复制重构 -
-
转到 Refactor → Copy ,它将打开对话框。
-
输入新名称和目标包。
-
单击“确定”按钮,即可完成所需操作。
Move Refactoring
移动重构类似于复制,但它不是制作另一个副本,而是将代码移动到另一个包或使其成为另一个类的内部类。
按照以下步骤执行移动重构 -
-
转到重构 → 移动。
-
将出现一个新窗口。
-
根据您的选择选择其中一个选项,然后单击“重构”。
Safe Delete
仅当对象在项目中任何地方都没有被引用时,安全删除操作才会删除该对象。此选项的目标可以是类、接口、方法、字段或参数。
让我们看看实际操作。在编辑器中输入以下代码 −
public class HelloWorld {
static void sayHello() {
System.out.println("Hello, World !!!");
}
public static void main(String[] args) {
sayHello();
}
}
按照以下步骤执行安全删除操作 −
-
Select the sayHello() method.
-
右键单击它并选择 Refactor → Safe Delete 选项。
-
由于正在使用 sayHello() 方法,它将显示错误,如下面的屏幕截图所示 −
Intellij Idea - Running Projects
-
IntelliJ 提供多种创建配置的方法。本章讨论了创建临时和永久配置的选项。还讨论了在其他用户之间共享配置的方法。
Create Temporary Configuration
-
当您运行或调试 Java 类或测试用例时,将创建临时配置。考虑以下步骤来了解其工作原理:——
-
Create a Java class.
-
10. 右键单击它,然后选择 “Run” 选项。
-
11. 在第一次运行后,临时配置将添加到运行菜单中。
Create Permanent Configuration
-
通过使用 IntelliJ 保存临时配置,可以将其转换为永久配置。要保存配置,请从运行菜单中单击 Save Configuration 选项:——
-
您还可以通过编辑来修改现有配置。
Create New Configuration
-
在本节中,我们将了解如何创建新配置。按照以下步骤创建新配置:——
-
15. 导航至 “Run → Edit Configuration”。
-
16. 单击加号按钮以添加新配置。
-
17. 从下拉列表中选择 “Application”。
-
18. 它将创建未命名的配置。
-
19. 根据您的要求对其进行配置,然后单击 “OK” 按钮。
-
该已保存的配置可通过“运行”菜单访问,如同访问其他配置一样。
Intellij Idea - Build Tools
IntelliJ 提供了一种方法来构建和打包 Java 包。它支持 Maven 和 Gradle 等外部构建工具。本章将讨论这些构建工具。
Creating Maven Project
按照以下步骤创建 Maven 项目 −
-
导航到 File → Project 。
-
选择 Maven 选项,然后单击“下一步”按钮。
-
在新的项目窗口中,输入 tutorialspoint.com 作为 GroupId,并输入 HelloWorld 作为 ArtifactId。
-
在“新建”窗口中,将会打开 pom.xml 文件。
-
我们需要向此文件添加属性;最终的 pom.xml 文件应如下所示 −
<?xml version = "1.0" encoding = "UTF-8"?>
<project xmlns = "http://maven.apache.org/POM/4.0.0"
xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation = "http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.tutorialspoing</groupId>
<artifactId>HelloWorld</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
</properties>
</project>
现在,让我们在 Maven 项目的 src/main/java 目录内创建一个 Java 类。按照以下步骤创建该类 −
-
导航到 src/main/java 目录。
-
右键单击它,然后选择 New → Java Class 。
按照以下步骤使用 Maven 编译此类 −
-
导航到“运行 → 编辑配置”。
-
单击绿色加号图标,然后从下拉菜单中选择 Maven 选项。
-
输入项目名称,即 Maven-Package。
-
提供包作为命令行。
-
点击确定按钮。
-
导航到“运行”,然后选择 Maven-Package 选项。
-
它将开始构建包。在成功构建包后,您将看到以下结果 −
Create Gradle Project
在本节中,我们将学习如何创建 Gradle 项目 −
-
1. 导航至 File → Project 并选择 Gradle。
-
2. 单击 “Next” 按钮。
-
3. 在新项目窗口中,输入 tutorialspoint 作为 GroupId,输入 HelloWorld 作为 ArtifactId。
-
4. 单击 “Next” 按钮,验证项目详细信息,然后单击 “Finish” 按钮。
-
5. 按照屏幕上的说明完成进程。
-
6. 打开 buildl.gradle 文件,并按上图所示编写 Hello 任务。
-
7. 要编译此任务,请导航至 Run → Build-Gradle 选项。
Intellij Idea - Unit Testing
单元测试在软件开发中起着重要作用。IntelliJ 支持各种单元测试框架,如 JUnit、TestNG、Spock 等。在本章中,我们将使用 JUnit3。
Create Unit test
在本节中,我们将学习如何创建单元测试。按照以下步骤创建测试 −
-
选择 Navigate → Test 选项。
-
此时会弹出一个对话框,你要从中选择 Create New Test 。
-
按照屏幕上的说明继续操作 -
-
提供有关测试的详细信息,如测试库、课程详细信息、setUp、tearDown 方法等。
-
单击继续按钮。
-
此时会创建一个测试课程。最初,该课程可能无法解析某些符号。将光标导航至错误行,此时会显示提示符。
-
从下拉菜单中选择相应的选项。我们已选择 Add library ‘junit.jar!’ to classpath 选项 -
你可以根据业务要求在每个测试中添加逻辑。为了简单起见,我已将此项保留为空。
Intellij Idea - Debugging
调试器可以使应用程序调试更为容易。通过使用调试器,可以停止程序在某个时间点的执行、检查变量、深入某项功能、并执行许多操作。IntelliJ 提供内置的 Java 调试器。
Breakpoints
断点允许停止程序在某个时间点的执行。可以通过将鼠标悬停在编辑器的边距区域上并单击该区域来设置断点。
以红色圆圈符号表示断点。考虑在第 3 行设置断点。
考虑以下步骤来进一步了解断点的工作方式 -
-
右键单击红色圆圈符号。
-
Select the More options.
-
只需单击同一符号即可删除断点。
按照以下步骤来启动调试器 -
-
导航到“运行”菜单。
-
Select the Debug option.
Step into
在调试过程中,如果遇到一个函数并且选择了进入操作,则调试器将如同该函数启用了调试那样在该函数的每个点停止程序执行。
例如,当程序执行到达第 9 行并且如果我们选择进入操作时,它将在 sayGoodBye() 函数中的每行停止执行。
Smart step into
在调试过程中,我们有时可能会到达调用多个方法的一行代码。在调试这些代码行时,调试器通常允许我们使用 step into 并引导我们遍历所有子函数,然后返回到父函数。但是,如果我们只想进入一个子函数怎么办?使用智能单步进入,它允许我们选择要进入的函数。
现在,让我们用以下代码行创建一个 Java 类:
public class HelloWorld {
public static void main(String[] args) {
allFunctions();
}
static void allFunctions() {
System.out.println(function1() + " " + function2() + " " + function3());
}
static String function1() {
return "function1";
}
static String function2() {
return "function2";
}
static String function3() {
return "function3";
}
}
在上面的代码中, allFunctions() 调用了 3 个附加函数。让我们在这个函数中设置断点。按照以下步骤执行智能单步进入:
-
Go to run
-
Select smart step into.
-
选择要采用的子函数。
Intellij Idea - Profiling
Profiler 会提供有关您的应用程序的信息,例如它的 CPU、内存和堆栈使用情况。它还会提供有关应用程序线程的详细信息。本章讨论 VisualVM 工具用于 Java 应用程序分析的用法。它可以分析 CPU 和堆栈等实体。
建议本教程的读者熟悉应用程序分析器概念。
Configuration
在本部分中,我们将学习配置 VisualVM 所执行的步骤。步骤如下:
-
Download it from here.
-
Extract the zip file.
-
导航到 etc/visualvm.conf 文件,并向文件中添加以下行:
visualvm_jdkhome=<path of JDK>
-
如果 JDK 安装在 C:\Program Files\Java\jdk-9.0.1 目录中,则它应如下所示:
visualvm_jdkhome="C:\Program Files\Java\jdk-9.0.1"
Monitoring application
现在让我们看看如何监视应用程序。根据以下步骤来理解相同的操作:
-
双击 visualvm.exe 文件。
-
从左侧窗格中选择应用程序。
-
Select the monitor tab.
您将被定向到一个窗口,您将在其中获取有关 CPU、堆、类和线程的详细信息。具体来说,将鼠标悬停在任何图表上方即可。我们在上面的屏幕截图中可以看到堆的使用率。
Insights about Threads
Java 应用程序可以包含多个执行线程。要了解有关线程的更多信息,请选择特定应用程序的“线程”选项卡。它将提供有关线程的各种统计信息,例如活动线程数和守护线程数。不同的线程状态有:正在运行,正在休眠,正在等待,正在停放和正在监视。
Intellij Idea - Version Control
IntelliJ 支持各种版本控制系统,如 Git、Subversion、Mercurial、CVS、GitHub 和 TFS。您可以直接从 IDE 执行与版本控制相关的操作。
在本章中,我们将讨论 Git 和 Subversion(以下简称 SVN)。我们假设读者熟悉 Git 和 SVN 工具及其术语。
Git
在本节中,我们将了解如何使用 Git。
Track changes
Git 将跟踪你在仓库中所做的更改。让我们修改仓库中的任何文件,并将其与仓库进行比较。
-
导航至 VCS → Git → 与最新仓库版本比较。
-
上述步骤将打开 diff 窗口。
-
你会看到右侧有一行新的绿色背景。
-
Git 以绿色显示它,因为我们添加了新内容。如果我们删除任何内容,它将以红色显示。
Commit changes
提交操作将创建本地提交。它类似于 git commit 操作。要执行提交 −
-
导航至 VCS → Git → Commit File 选项。
-
选择要提交的文件。
-
输入提交信息并单击“提交”按钮。
Push changes to the remote repository
推送操作会将本地更改发送至远程存储库。要推送更改 −
-
导航至 VCS → Git → Push 选项。
-
将出现一个窗口。在这里,您可以看到要推送的提交。
-
验证提交,然后单击“推送”按钮发布您的更改。
Subversion
在本节中,我们将了解 Subversion 在 IntelliJ 中的工作原理。让我们考虑几个重要的操作来理解这一点。
Checkout
签出 SVN 存储库 −
-
导航至 File → New → Project from Version Control → Subversion.
-
Enter repository URL.
-
单击 OK 按钮。
Track changes
SVN 将跟踪您在存储库中所做的更改。让我们修改存储库中的任何文件,并将其与存储库进行比较 −
-
导航至 VCS→Subversion→与最新存储库版本比较
-
您可以看到右侧有一行新的内容,背景色为绿色。
-
SVN 以绿色背景显示该行内容以表示添加了新内容。如果我们删除任何内容,则会显示为红色。
Commit changes to remote repository
按照以下步骤提交远程仓库中的更改 −
-
导航至 VCS → Subversion → Commit Files 选项。
-
将出现一个新窗口。在这里,您可以看到要提交到远程仓库的文件。
-
验证文件,然后单击“提交”按钮以发布您的更改。
Intellij Idea - Databases
IntelliJ 提供数据库工具,允许您直接在 IDE 中执行与数据库相关的操作。它支持所有主要数据库,如 MySQL、Oracle、Postgress、SQL server 和更多数据库。本章将讨论 IntelliJ 如何支持 MySQL 数据库。
我们假设读者熟悉数据库概念,并且系统中已安装并配置好所需的数据库工具。
Intellij Idea - Migrating from NetBeans
NetBeans 是另一个流行的 Java IDE。如果你当前是 NetBeans 的用户,并且想要从 NetBeans 迁移到 IntelliJ,那么这里将是一个不错的起点。
本章讨论了在 IntelliJ 中导入 NetBeans 项目及其与 NetBeans 等效的术语、流行的快捷键和常见问题。
Import NetBeans project
在本节中,我们将学习如何导入 NetBeans 项目。按照以下步骤导入该项目:
-
导航至文件 → 新建 → 现有来源项目
-
选择你的 NetBeans 项目目录。
-
当导入项目向导打开时,选择从现有来源创建项目选项。
-
遵循屏幕上的说明继续。
IntelliJ vsNetBeans terminology
下表比较了 IntelliJ 和 NetBeans 的术语:
IntelliJ |
NetBeans |
Module |
Project |
Global library |
Global library |
Module library |
Project library |
Module dependency |
Project dependency |
Module SDK |
Project-specific SDK |
Popular shortcuts
IntelliJ 是一款以键盘为中心的 IDE。它为大多数操作提供了快捷键。下表列出一些重要的快捷键:
Action |
Shortcut |
Run Java program |
ctrl+shift+F10 |
Organize imports |
ctrl+alt+o |
System.out.println() |
键入 sout 并按 Ctrl+j |
Delete current line |
ctrl + y |
Search |
Ctrl+Shift+F |
Generate getter and setter |
alt + insert |
Format code |
Ctrl+Alt+L |
Comment out code |
ctrl + / |
Go to line |
ctrl + g |
Go to declaration |
ctrl + b |
Rename |
shift+F6 |
Move lines |
Ctrl+Shift+向上/向下 |
Debugger shortcuts
下表列出了几个重要的调试器快捷键:
Debug action |
Shortcut |
Debug a program |
Shift + F9 |
Choose configuration and debug |
Shift+Alt+F9 |
Step over |
F8 |
Step into |
F7 |
Smart step into |
Shift + F7 |
Step out |
Shift + F8 |
Force step over |
Shift+Alt+F8 |
Force step into |
Shift+Alt+F7 |
Resume program |
F9 |
Evaluate expression |
Alt+F8 |
Toggle breakpoints |
Ctrl+F8 |
View breakpoints |
Ctrl+Shift+F8 |
FAQsand Tips
在本节中,我们将学习一些常见问题解答和提示。常见问题解答和提示如下:
Is local history in IntelliJ IDEA different from that in NetBeans?
通常,IntelliJ IDEA 中的本地历史更详细。任何关于目录、文件、类、方法或字段或代码块的操作都会反映在你的本地历史中。本地历史还包括 VCS 操作。
Is it possible to build NetBeans RCP applications with IntelliJ IDEA?
这是有可能的;但是,你无法获得与使用 NetBeans 所获得的相同类型支持(向导、菜单操作等)。要了解更多详细信息,请访问 this.
Intellij Idea - Migrating from Eclipse
Eclipse 是另一种流行的 Java IDE。如果您是 Eclipse 的现用用户,并想从其迁移到 IntelliJ,那么这是一个很好的起点。
本章讨论了如何在 IntelliJ 中导入 Eclipse 项目、它的 Eclipse 等价术语、常用快捷方式和常见问题。
Import existing project
在本节中,我们将讨论如何导入现有项目。请按以下步骤导入项目:
-
导航至文件 → 新建 → 从现有来源进行项目。
-
选择你的 NetBeans 项目目录。
-
当导入项目向导打开时,选择从现有来源创建项目选项。
-
遵循屏幕上的说明继续。
IntelliJ vsEclipse terminology
下表比较了 IntelliJ 和 NetBeans 术语 -
IntelliJ |
Eclipse |
Project |
Workspace |
Module |
Project |
Facet |
Facet |
Library |
Library |
SDK |
JRE |
Path variable |
Classpath variable |
Popular shortcuts
IntelliJ 是一个以键盘为中心的 IDE。它为大多数操作提供了快捷键。下表列出了一些常用快捷键 -
Action |
Shortcut |
Run java program |
ctrl+shift+F10 |
Organize imports |
ctrl+alt+o |
System.out.println() |
键入 sout,然后按 Ctrl+J |
Delete current line |
ctrl + y |
Search |
Ctrl+Shift+F |
Generate getter and setter |
alt + insert |
Format code |
Ctrl+Alt+L |
Comment out code |
ctrl + / |
Go to line |
ctrl + g |
Go to declaration |
ctrl + b |
Rename |
shift+F6 |
Move lines |
Ctrl+Shift+向上/向下 |
Debugger shortcuts
下表列出了一些常用的调试快捷键 -
Debug action |
Shortcut |
Debug a program |
Shift + F9 |
Choose configuration and debug |
Shift+Alt+F9 |
Step over |
F8 |
Step into |
F7 |
Smart step into |
Shift + F7 |
Step out |
Shift + F8 |
Force step over |
Shift+Alt+F8 |
Force step into |
Shift+Alt+F7 |
Resume program |
F9 |
Evaluate expression |
Alt+F8 |
Toggle breakpoints |
Ctrl+F8 |
View breakpoints |
Ctrl+Shift+F8 |
FAQsand Tips
在此部分中,我们会看到一些常见问题和提示。常见问题及提示如下 -
Use Eclipse Compiler
Eclipse 使用它自己的编译器,而 IntelliJ IDEA 使用与项目 JDK 捆绑在一起的 javac 编译器。如果你想使用 Eclipse 编译器 -
-
导航到 File → Settings → Build, Execution, Deployment → Compiler → Java Compiler 。
-
从用户编译器下拉菜单中选择所需的编译器。
Eclipse Keymap
对于不想学习新快捷键的 Eclipse 用户,IntelliJ IDEA 提供了 Eclipse 快捷键映射,它非常类似其快捷键 -
-
导航到文件 → 设置 → 快捷键映射选项。
-
从快捷键映射下拉菜单中选择 Eclipse。