[toc]
描述: Eclipse IDE编辑器 它是是由IBM公司开发的一款JAVA程序开发的软件(支持Windows、Mac、Linux),提供了开发的便利性,并且可以免费使用它, 当前版本 Eclipse IDE 2020-12 R;
官网下载: https://www.eclipse.org/downloads/ Eclipse IDE 2020-12 R(可选择Mirror下载):https://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/2020-12/R/eclipse-jee-2020-12-R-linux-gtk-x86_64.tar.gz
PS : 程序的编译和运行的环境配置(一般不改) 由于修改编译环境会导致不可置信
环境依赖:JDK(Java) 操作系统:Windows|linux
描述: 在 Ubuntu-20.04-01-Server 下安装并使用 Eclipse, Windows 安装此处不多说; 安装环境:
root@weiyigeek-pc:~/Downloads# ls
eclipse-jee-2020-12-R-linux-gtk-x86_64.tar.gz jdk-8u211-linux-x64.tar.gz
root@weiyigeek-pc:~/Downloads# lsb_release -a
Distributor ID: Ubuntu
Description: Ubuntu 20.04.1 LTS
Release: 20.04
Codename: focal
root@weiyigeek-pc:~/Downloads# uname -r
5.4.0-59-generic安装部署流程:
Step 1.分别上传 jdk 和 eclipse-jee 到服务器之中;
root@weiyigeek-pc:~/Downloads# ls
eclipse-jee-2020-12-R-linux-gtk-x86_64.tar.gz jdk-8u211-linux-x64.tar.gzStep 2.Java 环境配置
# @java 环境设置
java::Env () {
# 基础变量
JAVA_FILE="/root/Downloads/jdk-8u211-linux-x64.tar.gz"
JAVA_SRC="/usr/local/"
JAVA_DIR="/usr/local/jdk"
# 环境配置
sudo tar -zxvf ${JAVA_FILE} -C ${JAVA_SRC}
sudo rm -rf /usr/local/jdk
JAVA_SRC=$(ls /usr/local/ | grep "jdk")
sudo ln -s ${JAVA_SRC} ${JAVA_DIR}
export PATH=${JAVA_DIR}/bin:${PATH}
sudo cp /etc/profile /etc/profile.$(date +%Y%m%d-%H%M%S).bak
sudo tee -a /etc/profile <<'EOF'
export JAVA_HOME=/usr/local/jdk
export JRE_HOME=/usr/local/jdk/jre
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$JAVA_HOME/bin:$PATH
EOF
java -version
}Step 3.Eclipse 解压与软连接创建
# 解压软连接
tar -zxf eclipse-jee-2020-12-R-linux-gtk-x86_64.tar.gz -C /usr/local/
ln -s /usr/local/eclipse/eclipse /usr/bin/eclipse
# 桌面图标
nano eclipse.desktop
[Desktop Entry]
Name=Eclipse
Comment=Eclipse-JEE
Exec=/usr/local/eclipse/eclipse
Icon=/usr/local/eclipse/icon.xpm
Type=Application
Terminal=false
StartupNotify=true
Encoding=UTF-8
sudo chmod 777 eclipse.desktop
# 启动测试
./eclipse
WeiyiGeek.Eclipse运行
视图是由某些视窗的组合而成的
* Java 视图
* Java EE 视图
* Debug 视图
视窗每一个基本的窗体被称为视窗
* PackageExplorer 显示项目结构,包,类,及资源
* Outline 显示类的结构,方便查找,识别,修改
* Console 程序运行的结果在该窗口显示
* Hierarchy 显示Java继承层次结构,选中类后F4
WeiyiGeek.Ubuntu中运行Eclipse界面
描述:使用快捷键可以帮助我们提高开发效率最重要的是提高比格;
* 0:内容辅助键起提示作用 Alt+/
* 1:显示类说明和隐藏类说 F2
* 2:显示类的类型层次结构 F4
* 3:自动生成构造方法与生成提供外部使用的公共方法
* A:新建(可以输入关键字选择) ctrl + n
* B:格式化 ctrl+shift+f
* C:导入包 ctrl+shift+o
* D:注释(单行/多行) ctrl+/,ctrl+shift+/,ctrl+shift+\
* E:代码上下移动 选中代码alt+上/下箭头
* F:查看源码 选中类名(F3或者Ctrl+鼠标点击)
* G:查找具体的类 ctrl + shift + t
* H:查找具体类的具体方法(列表显示) ctrl + o
* I:给建议根据右边生成左边的数据类型(生成方法) ctrl+1 (实用 将鼠标放在创建的方法名上)
* J:删除代码 ctrl + d
* K:抽取方法 alt + shift + m
* L:改名 alt + shift + r
* M:隐藏除代码区的所有窗口 ctrl + m
* O:向上或者向下复制一行 `ctrl + alt + [上键|下键]`Eclipse快捷键大全(转载)
Ctrl+1 快速修复(最经典的快捷键,就不用多说了)
Ctrl+D: 删除当前行
Ctrl+Alt+↓ 复制当前行到下一行(复制增加)
Ctrl+Alt+↑ 复制当前行到上一行(复制增加)
Alt+↓ 当前行和下面一行交互位置(特别实用,可以省去先剪切,再粘贴了)
Alt+↑ 当前行和上面一行交互位置(同上)
Alt+← 前一个编辑的页面
Alt+→ 下一个编辑的页面(当然是针对上面那条来说了)
Alt+Enter 显示当前选择资源(工程,or 文件 or文件)的属性
Shift+Enter 在当前行的下一行插入空行(这时鼠标可以在当前行的任一位置,不一定是最后)
Shift+Ctrl+Enter 在当前行插入空行(原理同上条)
Ctrl+Q 定位到最后编辑的地方
Ctrl+L 定位在某行 (对于程序超过100的人就有福音了)
Ctrl+M 最大化当前的Edit或View (再按则反之)
Ctrl+/ 注释当前行,再按则取消注释
Ctrl+O 快速显示 OutLine
Ctrl+T 快速显示当前类的继承结构
Ctrl+W 关闭当前Editer
Ctrl+K 参照选中的Word快速定位到下一个
Ctrl+E 快速显示当前Editer的下拉列表(如果当前页面没有显示的用黑体表示)
Ctrl+/(小键盘) 折叠当前类中的所有代码
Ctrl+×(小键盘) 展开当前类中的所有代码
Ctrl+Space 代码助手完成一些代码的插入(但一般和输入法有冲突,可以修改输入法的热键,也可以暂用Alt+/来代替)
Ctrl+Shift+E 显示管理当前打开的所有的View的管理器(可以选择关闭,激活等操作)
Ctrl+J 正向增量查找(按下Ctrl+J后,你所输入的每个字母编辑器都提供快速匹配定位到某个单词,如果没有,则在stutes line中显示没有找到了,查一个单词时,特别实用,这个功能Idea两年前就有了)
Ctrl+Shift+J 反向增量查找(和上条相同,只不过是从后往前查)
Ctrl+Shift+F4 关闭所有打开的Editer
Ctrl+Shift+X 把当前选中的文本全部变为大写
Ctrl+Shift+Y 把当前选中的文本全部变为小写
Ctrl+Shift+F 格式化当前代码
Ctrl+Shift+P 定位到对于的匹配符(譬如{}) (从前面定位后面时,光标要在匹配符里面,后面到前面,则反之)
# 下面的快捷键是重构里面常用的,本人就自己喜欢且常用的整理一下(注:一般重构的快捷键都是Alt+Shift开头的了)
Alt+Shift+R 重命名 (是我自己最爱用的一个了,尤其是变量和类的Rename,比手工方法能节省很多劳动力)
Alt+Shift+M 抽取方法 (这是重构里面最常用的方法之一了,尤其是对一大堆泥团代码有用)
Alt+Shift+C 修改函数结构(比较实用,有N个函数调用了这个方法,修改一次搞定)
Alt+Shift+L 抽取本地变量( 可以直接把一些魔法数字和字符串抽取成一个变量,尤其是多处调用的时候) - 实用
Alt+Shift+F 把Class中的local变量变为field变量 (比较实用的功能)
Alt+Shift+I 合并变量(可能这样说有点不妥Inline)
Alt+Shift+V 移动函数和变量(不怎么常用)
Alt+Shift+Z 重构的后悔药(Undo)|Try Catch快捷键 - 实用
# 编辑
作用域 功能 快捷键
全局 查找并替换 Ctrl+F
文本编辑器 查找上一个 Ctrl+Shift+K
文本编辑器 查找下一个 Ctrl+K
全局 撤销 Ctrl+Z
全局 复制 Ctrl+C
全局 恢复上一个选择 Alt+Shift+↓
全局 剪切 Ctrl+X
全局 快速修正 Ctrl1+1
全局 内容辅助 Alt+/
全局 全部选中 Ctrl+A
全局 删除 Delete
全局 上下文信息 Alt+?
Alt+Shift+?
Ctrl+Shift+Space
Java编辑器 显示工具提示描述 F2
Java编辑器 选择封装元素 Alt+Shift+↑
Java编辑器 选择上一个元素 Alt+Shift+←
Java编辑器 选择下一个元素 Alt+Shift+→
文本编辑器 增量查找 Ctrl+J
文本编辑器 增量逆向查找 Ctrl+Shift+J
全局 粘贴 Ctrl+V
全局 重做 Ctrl+Y
# 查看
# 作用域 功能 快捷键
全局 放大 Ctrl+=
全局 缩小 Ctrl+-
# 窗口
# 作用域 功能 快捷键
全局 激活编辑器 F12
全局 切换编辑器 Ctrl+Shift+W
全局 上一个编辑器 Ctrl+Shift+F6
全局 上一个视图 Ctrl+Shift+F7
全局 上一个透视图 Ctrl+Shift+F8
全局 下一个编辑器 Ctrl+F6
全局 下一个视图 Ctrl+F7
全局 下一个透视图 Ctrl+F8
文本编辑器 显示标尺上下文菜单 Ctrl+W
全局 显示视图菜单 Ctrl+F10
全局 显示系统菜单 Alt+-
# 导航
# 作用域 功能 快捷键
Java编辑器 打开结构 Ctrl+F3
全局 打开类型 Ctrl+Shift+T
全局 打开类型层次结构 F4
全局 打开声明 F3
全局 打开外部javadoc Shift+F2
全局 打开资源 Ctrl+Shift+R
全局 后退历史记录 Alt+←
全局 前进历史记录 Alt+→
全局 上一个 Ctrl+,
全局 下一个 Ctrl+.
Java编辑器 显示大纲 Ctrl+O
全局 在层次结构中打开类型 Ctrl+Shift+H
全局 转至匹配的括号 Ctrl+Shift+P
全局 转至上一个编辑位置 Ctrl+Q
Java编辑器 转至上一个成员 Ctrl+Shift+↑
Java编辑器 转至下一个成员 Ctrl+Shift+↓
文本编辑器 转至行 Ctrl+L
# 搜索
# 作用域 功能 快捷键
全局 出现在文件中 Ctrl+Shift+U
全局 打开搜索对话框 Ctrl+H
全局 工作区中的声明 Ctrl+G
全局 工作区中的引用 Ctrl+Shift+G
# 文本编辑
# 作用域 功能 快捷键
文本编辑器 改写切换 Insert
文本编辑器 上滚行 Ctrl+↑
文本编辑器 下滚行 Ctrl+↓
# 文件
# 作用域 功能 快捷键
全局 保存 Ctrl+S
全局 打印 Ctrl+P
全局 关闭 Ctrl+F4
全局 全部保存 Ctrl+Shift+S
全局 全部关闭 Ctrl+Shift+F4
全局 属性 Alt+Enter
全局 新建 Ctrl+N
# 项目
# 作用域 功能 快捷键
全局 全部构建 Ctrl+B
# 源代码
# 作用域 功能 快捷键
Java编辑器 格式化 Ctrl+Shift+F
Java编辑器 取消注释 Ctrl+\
Java编辑器 注释 Ctrl+/
Java编辑器 添加导入 Ctrl+Shift+M
Java编辑器 组织导入 Ctrl+Shift+O
Java编辑器 使用try/catch块来包围 未设置,太常用了,所以在这里列出,建议自己设置。
也可以使用Ctrl+1自动修正。
# 运行
# 作用域 功能 快捷键
全局 单步返回 F7
全局 单步跳过 F6
全局 单步跳入 F5
全局 单步跳入选择 Ctrl+F5
全局 调试上次启动 F11
全局 继续 F8
全局 使用过滤器单步执行 Shift+F5
全局 添加/去除断点 Ctrl+Shift+B
全局 显示 Ctrl+D
全局 运行上次启动 Ctrl+F11
全局 运行至行 Ctrl+R
全局 执行 Ctrl+U
# 重构
# 作用域 功能 快捷键
全局 撤销重构 Alt+Shift+Z
全局 抽取方法 Alt+Shift+M
全局 抽取局部变量 Alt+Shift+L
全局 内联 Alt+Shift+I
全局 移动 Alt+Shift+V
全局 重命名 Alt+Shift+R
全局 重做 Alt+Shift+Y选择菜单栏:window -- Preferences -- Java

WeiyiGeek.
描述:我们可以设置注释也可以进行删除注释,选择你不想要的内容通过右边Edit编辑(请只删除注释部分,不是注释部分的不要删除)。
选择菜单栏:window -- Preferences -- Java -- Code Style -- Code Templates

WeiyiGeek.
A:行号的显示和隐藏
B:字体大小及颜色
C:窗体给弄乱了,怎么办?
D:控制台找不到了,怎么办?
E:取消悬浮提示

WeiyiGeek.
描述:在Eclipse的IDE中常常会使用一些快捷大大的提高了我们的开发效率,
alt+/ 功能是代码和内容补齐功能,非常的强大还可以自动导包;定义自己的alt + /快捷输入补齐:windows--perference-Java-Editor-Templates--New
#补充输出语句,选中需要输出的部分,alt+/选择最后一项即可
Alt+/ #代码提示以及自动导包作用
#示例
main+alt+/ #public static void main(String[] args)
syso+alt+/ #System.out.println("")还比如alt + shit + s + [cor]强大到可以建立空参构造以及有参构造
#使用方法:
在菜单栏source里面进行选择或者在代码区鼠标右键选择source里面进行选择;
Generate Constructors from Superclass
Generate Constructor using field
Generate gettter and setters
alt + shit + s + [cor] #会根据您在类中声明的成员变量来
- c 生成空参构造
- o 生成有参构造
- r 生成get和set方法基础示例:
class Person {
private String name;
private int age;
//source ->Generate Constructors from Superclass && 快捷键:alt + shift + s + c
public Person() {
super();
}
//source ->Generate Constructor using field && 快捷键:alt + shift + s + o
public Person(String name, int age) {
super();
this.name = name;
this.age = age;
}
//source ->Generate gettter and setters&& 快捷键:alt + shift + s + r
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}描述:在Window –> Preferences–> General–> Workspace下,面板Text file encoding 选择UTF-8格式
1.单行注释
添加注释:Ctrl+/ 或 Ctrl + Shift +c 在单行代码前添加//注释
取消注释:Ctrl+/ 或 Ctrl + Shift +c 在单行代码前取消//注释
2.多行注释
添加注释:Ctrl + Shift + / 为选中代码块添加注释
取消注释:Ctrl + Shift +\ 为选中代码块取消注释描述: Lombok 的插件可以帮助我们简化代码(比如set/get方法可以省略不写),取而代之的是在 JavaBean 上标注的注解;
Lombok官方介绍:通过增加一些“处理程序”,可以让 Java 变得简洁、快速。
为啥要使用此插件?
答:在 Java 中要保证封装性,需要将成员变量私有化,对外提供 set/get 方法来访问,虽然现在的 IDE,像 eclipse,IDEA都提供了快捷键,来生成 set/get 方法,但是在做项目的时候,一个 JavaBean 往往会有很多的成员变量,一个变量对应两个方法,如果有10几个成员变量,那么会对应20多个方法,也许还要去写构造器、equals 等方法,而且需要维护。这样一来会使代码变得非常冗余,这些显得很冗长也没有太多技术含量,一旦修改属性就容易出现忘记修改对应方法的失误。
Lombok安装方法 描述:官方下载lombok.jar,双击下载好的lombak.jar安装操作进行依赖安装;
Speclify Location 选择 eclipse 的安装目录,然后点击Install / Update ,点击Quit Installer完成安装-javaagent:D:\Programs\eclipse\lombok.jar,然后重启Eclipse后将lombok.jar导入项目即可;
WeiyiGeek.Lombok
Lombok注解使用方法
PS:使用得时候需要进行导包,否则不能使用我得版本是Eclipse 2019/6
@Data 注解:为类的所有属性自动生成 setter/getter、equals、canEqual、hashCode、toString 方法,如为 final 属性则不会为该属性生成 setter 方法。
包含了 @ToString、@EqualsAndHashCode、@Getter/@Setter、@RequiredArgsConstructor的所有特性
import lombok.Data;
@Data
public class Student {
private String name;
private Integer age;
public static void main(String[] args) {
Student d = new Student();
d.setName("WeiyiGeek");
d.setAge(15);
System.out.println(d.toString());
}
}
//#执行结果
Student(name=WeiyiGeek, age=15)@Getter/@Setter 注解:指定属性自动生成 set/get 方法它不想@Date那么的粗暴
//#示例1.
import lombok.Setter;
public class Student {
@Setter private String name;
private Integer age;
private Integer id;
private String major;
public static void main(String[] args) {
Student stu = new Student();
stu.setName("Mr.ml");
}
}
//#示例2.
package top.weiyigeek.Lombok;
import lombok.Getter;
import lombok.Setter;
public class Demo2 {
@Setter @Getter private String Name;
@Setter private String Address;
public static void main(String[] args) {
Demo2 d2 = new Demo2();
d2.setName("Weiyigeek");
d2.setAddress("Beijing");
System.out.println(d2.getName()); //由于Address属性没加@Getter注释所以这里无法调用getAddress方法
System.out.println(d2.toString()); //由于没有重新toString方法
}
}
//执行结果:
Weiyigeek
top.weiyigeek.Lombok.Demo2@15db9742-@NonNull 注解:用在属性或构造器上,Lombok 会生成一个非空的声明,可用于校验参数能帮助避免空指针。
public class Student {
@Setter private String name;
public Student(@NonNull String name) {
this.name = name;
}
}@Cleanup 注解: 能帮助我们自动调用 close() 方法很大的简化了代码。
//#示例1
public class CleanupExample {
public static void main(String[] args) throws IOException {
@Cleanup InputStream in = new FileInputStream(args[0]);
@Cleanup OutputStream out = new FileOutputStream(args[1]);
byte[] b = new byte[10000];
while (true) {
int r = in.read(b);
if (r == -1) break;
out.write(b, 0, r);
}
}
}
//#示例2
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import lombok.Cleanup;
public class Demo3 {
public static void main(String[] args) {
try {
@Cleanup InputStream in = new FileInputStream(args[0]);
@Cleanup OutputStream out = new FileOutputStream(args[1]);
byte[] b = new byte[1024];
while(true) {
int r = in.read(b);
if (r == -1) {
System.out.println("内容复制完成!");
break;
}
out.write(b, 0, r);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}@EqualsAndHashCode 注解:默认情况下,会使用所有非静态(non-static)和非瞬态(non-transient)属性来生成 equals 和 hashCode,也能通过 exclude注解来排除一些属性
@EqualsAndHashCode(exclude={"id", "shape"})
public class EqualsAndHashCodeExample {
private transient int transientVar = 10;
private String name;
private double score;
private Shape shape = new Square(5, 10);
private String[] tags;
private int id;
public String getName() {
return this.name;
}
@EqualsAndHashCode(callSuper=true)
public static class Square extends Shape {
private final int width, height;
public Square(int width, int height) {
this.width = width;
this.height = height;
}
}
}@ToString 注解: 使用@ToString 注解,Lombok 会生成一个 toString() 方法,默认情况下,会输出类名、所有属性(会按照属性定义顺序)用逗号来分割。通过将 includeFieldNames 参数设为 true 就能明确的输出 toString() 属性。这一点是不是有点绕口通过代码来看会更清晰些。
@ToString(exclude="id")
public class ToStringExample {
private static final int STATIC_VAR = 10;
private String name;
private Shape shape = new Square(5, 10);
private String[] tags;
private int id;
public String getName() {
return this.getName();
}
@ToString(callSuper=true, includeFieldNames=true)
public static class Square extends Shape {
private final int width, height;
public Square(int width, int height) {
this.width = width;
this.height = height;
}
}
}@NoArgsConstructor, @RequiredArgsConstructor and @AllArgsConstructor : 无参构造器、部分参数构造器、全参构造器。Lombok没法实现多种参数构造器的重载。
@RequiredArgsConstructor(staticName = "of")
@AllArgsConstructor(access = AccessLevel.PROTECTED)
public class ConstructorExample<T> {
private int x, y;
@NonNull private T description;
@NoArgsConstructor
public static class NoArgsExample {
@NonNull private String field;
}
}push项目到远程仓库并为项目打标签的操作流程:

WeiyiGeek.push 项目
PS : 如果选择Commit and push 就立即 上传到远程仓库中,而commit仅仅提交到本地仓库中;如果是一个稳定的版本又要为它打Tag的情况下可以选择Commit,只是减少一步重复提交的操作而已;
右键项目-> Team -> Advanced -> create Tag,输入Tag 名称与Tag的信息备注, 然后Push tag 于此同时也将本地仓库的commit修改提交到了远程仓库, 之后点击完成即可;
WeiyiGeek.push tag

WeiyiGeek.show tags