在 Eclipse IDE 中构建 Java 应用程序

此页面由 Daniel SchmidUPL 下贡献

 

介绍和安装

Eclipse IDE(简称 Eclipse)是一个常用的应用程序,它提供了帮助开发人员编写、运行和调试 Java 代码的工具。本文介绍如何开始使用 Eclipse 开发 Java 应用程序。

安装 Eclipse 最简单的方法是从 此网站 下载并运行 Eclipse 安装程序。这提供了多个要安装的软件包选项。在大多数情况下,Eclipse IDE for Java Developers 是 Java 开发的良好安装选择。

Eclipse Installer

安装 Eclipse 后,您可以选择一个工作区。工作区是大多数项目所在的目录。

Workspace selection

选择工作区后,它将显示一个欢迎屏幕,向您展示多个选项。例如,有一个选项可以启动一个交互式教程,向您展示如何创建一个简单的 Hello-World 应用程序。

Workspace selection

本文将向您展示如何手动创建 Java 项目,因此您可以通过单击欢迎选项卡右上角的隐藏按钮来关闭此欢迎屏幕。

 

创建 Java 项目

安装 Eclipse 后,您应该有一个空的工作区。要创建一个新的 Java 项目,请单击 Eclipse 窗口左上角的文件工具栏,然后选择新建 > Java 项目

File > New > Java Project

这将打开一个对话框窗口,允许您配置项目。您需要在顶部项目名称:旁边输入一个名称。例如,您可以选择名称HelloWorld。在底部的模块部分,禁用选项创建 module-info.java 文件。您可以在JRE框中配置自定义 Java 安装(通常称为JDK或 Java 开发工具包)。

Java project creation dialog

这将创建一个 Java 项目,该项目显示在 Eclipse 窗口的左侧。展开此项目时,应该有一个名为src的文件夹。可以通过右键单击它并选择新建 > 来在此目录中创建 Java 类。

New > Class

这将打开一个类似于项目创建对话框的对话框。它允许指定有关要创建的类的各种选项。现在,您需要输入一个类名,例如HelloWorld。如果需要,您还可以配置一个包,用于将多个类分组在一起。

Java class creation dialog

 

内容辅助

Eclipse 可以通过自动完成 Java 代码的部分内容来帮助您编写 Java 代码。在编辑 Java 代码时按组合键Ctrl+Space(或 macOS 上的+Space或中文系统上的Alt+/),Eclipse 会自动建议完成代码的方法。可以通过按Enter键或双击建议来确认这些建议。

例如,在类中键入main,然后按Ctrl+Space会建议添加一个 main 方法。

Content assist suggesting a main method

在方法内部,Eclipse 可以建议将sysout更改为System.out.println();语句。

Content assist suggesting a System.out statement

此外,它可以完成类名和方法名。

Content assist completing the class name String

Content assist completing the method String#length

 

运行您的程序

要运行 Java 应用程序,您首先需要有一个包含main方法的类。您可以右键单击包资源管理器中的类,或右键单击您正在为该类编写代码的编辑器,然后选择以...运行 > Java 应用程序

Run As > Java application in the editor

Run As > Java application in the editor

或者,您可以使用工具栏中的运行 运行按钮 按钮运行应用程序。 工具栏中的运行按钮

运行程序时,Eclipse 应该在控制台视图中显示程序的输出。

Program with output in console

 

处理编译错误和警告

当 Eclipse 检测到编译错误时,相关行将以红色下划线显示。当将鼠标悬停在出现错误的行或该行左侧的错误图标上时,Eclipse 会提供有关错误原因的信息,并建议可以修复错误的快速修复。但是,在许多情况下,有多种方法可以消除错误。您需要仔细检查建议是否真正符合您要执行的操作。毕竟,IDE 无法预测您的意图。

Compilation error due to calling a non-existing method

此外,Eclipse 在问题视图中显示错误列表。如果此视图未显示,则可以使用菜单窗口 > 显示视图 > 问题来显示它。

opening Problems view

Problems view showing an error

与错误一样,Eclipse 还可以检测到编译但可能包含一些问题或毫无意义的代码。在这种情况下,Eclipse 将显示警告。

Warning due to unused variable

Problems view showing a warning

 

调试

当程序没有按预期执行时,您可能需要调试它。调试过程在 本文 中进行了说明。Eclipse 提供了许多功能,使调试 Java 应用程序变得容易。

要调试应用程序,您需要设置断点。当程序开始执行带有断点的行时,它将暂时停止(“挂起”),允许您检查其当前状态并逐步执行程序。要设置断点,您需要双击要挂起程序的行左侧的区域。执行此操作后,应该会出现一个蓝色圆点。

A breakpoint next to source code

正常运行程序时,它将忽略所有断点。对于调试,您需要在调试模式下运行程序。这可以通过单击运行按钮旁边的带有错误图标的绿色按钮 调试按钮 或使用以...调试 > Java 应用程序来完成。

The debug button next to run buttons

当程序执行到达调试模式下的断点时,Eclipse 将要求您切换到调试透视图。此透视图提供了有关您当前正在调试的程序的更多信息,因此您可能希望执行此操作并单击切换按钮。

Eclipse asking to switch to the Debug perspective

打开调试透视图后,您应该仍然在中间看到您的代码。但是,断点旁边应该有一行带有绿色背景。这表示程序将执行的下一行。在右侧,您应该看到一个变量视图,其中包含变量列表及其当前值。

The debug perspective

当程序挂起时,您可以使用顶部工具栏中的按钮告诉它如何继续执行。 用于控制工具栏中执行流程的按钮 您可以使用单步执行 单步执行按钮F6)执行一行,使用步入 步入按钮F5)进入方法,或使用恢复 恢复按钮F8)继续执行程序,直到下一个断点。

 

生成代码

有时您可能需要编写重复的代码,这些代码不包含太多业务逻辑,可以使用来自现有代码的信息生成。这方面的一个例子是 getter/setter 或equals/hashCode/toString方法,这些方法通常只需要访问一些字段。虽然使用 记录 通常更可取,但 Eclipse 允许附带生成这些重复代码的功能。

要执行此操作,您首先需要创建一个包含一些字段的类,您希望为这些字段生成这些方法。在本例中,我们将创建一个Person类,用于存储一个人的名字、姓氏和年龄。

public class Person {
    private String firstName;
    private String lastName;
    private int age;
    //we want to generate code here
    
}

右键单击该类时,有一个名为的选项,提供了多种生成代码的方法。在这里,我们可以选择生成 Getter 和 Setter...来为Person类中的字段生成访问器方法。

Generate Getters and Setters

此选项应该打开一个新窗口,允许我们配置要为其生成访问器的字段。要为所有字段创建访问器,请使用全选按钮。然后单击右下角的生成

Generate Getters and Setters

执行此操作后,该类应该如下所示

public class Person {
    private String firstName;
    private String lastName;
    private int age;
    //we want to generate code here
    public String getFirstName() {
        return firstName;
    }
    public void setFirstName(String firstName) {
        this.firstName = firstName;
    }
    public String getLastName() {
        return lastName;
    }
    public void setLastName(String lastName) {
        this.lastName = lastName;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    
}

类似地,可以使用菜单 > 生成 hashCode() 和 equals()...来生成hashCodeequals方法。

Generate hashCode and equals

这也会打开一个窗口,允许选择要包含在hashCodeequals方法中的字段。
Selecting fields to use in hashCode and equals

单击生成后,Eclipse 会自动将这些方法添加到该类中。

import java.util.Objects;

public class Person {
    private String firstName;
    private String lastName;
    private int age;
    //we want to generate code here
    public String getFirstName() {
        return firstName;
    }
    public void setFirstName(String firstName) {
        this.firstName = firstName;
    }
    public String getLastName() {
        return lastName;
    }
    public void setLastName(String lastName) {
        this.lastName = lastName;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    @Override
    public int hashCode() {
        return Objects.hash(age, firstName, lastName);
    }
    @Override
    public boolean equals(Object obj) {
        if (this == obj)
            return true;
        if (obj == null)
            return false;
        if (getClass() != obj.getClass())
            return false;
        Person other = (Person) obj;
        return age == other.age && Objects.equals(firstName, other.firstName)
                && Objects.equals(lastName, other.lastName);
    }
    
}

另一个经常生成的方法是toString(),它返回对象的String表示形式。要生成该方法,请在菜单中选择生成 toString()...

Generate toString

与之前一样,这将打开一个窗口,允许指定有关如何生成代码的确切选项。

Options for toString

使用生成按钮,Eclipse 会像之前生成其他方法一样生成toString方法。

import java.util.Objects;

public class Person {
    private String firstName;
    private String lastName;
    private int age;
    //we want to generate code here
    public String getFirstName() {
        return firstName;
    }
    public void setFirstName(String firstName) {
        this.firstName = firstName;
    }
    public String getLastName() {
        return lastName;
    }
    public void setLastName(String lastName) {
        this.lastName = lastName;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    @Override
    public int hashCode() {
        return Objects.hash(age, firstName, lastName);
    }
    @Override
    public boolean equals(Object obj) {
        if (this == obj)
            return true;
        if (obj == null)
            return false;
        if (getClass() != obj.getClass())
            return false;
        Person other = (Person) obj;
        return age == other.age && Objects.equals(firstName, other.firstName)
                && Objects.equals(lastName, other.lastName);
    }
    @Override
    public String toString() {
        return "Person [firstName=" + firstName + ", lastName=" + lastName + ", age=" + age + "]";
    }
    
}

 

重构

在处理 Java 应用程序时,通常需要以各种方式更改现有代码,同时保留功能。Eclipse 通过提供各种重构选项来支持开发人员执行此操作。这方面的一个例子是重命名类、方法或字段。这可以通过单击类、方法或变量名称,右键单击并选择重构 > 重命名来完成。

Rename context menu

然后,您可以将名称更改为其他名称,并使用Enter键确认。这还会更新对重命名元素的所有引用。

Renaming a class name

Renaming a class name

 

总结

如您所见,Eclipse IDE 提供了许多工具来帮助开发人员编写 Java 应用程序。虽然本文展示了一些工具,但 Eclipse 还附带了许多其他功能,这些功能在处理大型应用程序时特别有用。如果您有兴趣了解更多信息,请查看Java 开发用户指南

最后更新: 2024 年 4 月 22 日


返回教程列表