实验一 Java开发环境的熟悉(Linux + IDEA)
(一)命令行下Java程序开发
实验步骤:
- 1 首先双击实验楼桌面上的
Xface终端
图标 - 2 打开终端(类似Windows下的cmd),之后会自动运行shell程序
- 3 输入cd Code命令进入Code(注意C要大写)目录
- 4 输入
mkdir 20169202
命令建立实验目录,可以使用ls
命令或dir
命令查看建立的目录情况。 - 5 输入
cd 20169202
命令进入实验目录,再输入类似mkdir exp
建立第一个实验目录,然后输入cd exp
进入实验一目录,可以输入pwd
命令查看当前工作路径, - 6 输入
gedit Hello.java
(注意把代码保存到exp目录中)或vim Hello.java
(建议大家花点时间学习一下Vim)编辑Hello.java
,并输入以下代码:
1 package ljp;
2 import java.util.Scanner;
3 public class Hello{
4 public static void main(String[] args){
5 System.out.println("Input your first name, please:");
6 Scanner s = new Scanner(System.in);
7 String name = s.next();
8 System.out.println("Hello " + name + " !");
9 }
10 }
- 7 输入
javac -d . Hello.java
命令编译代码,输入java ljp.Hello
命令运行
程序。结果如下图所示:
(二)Eclipse下Java程序开发、调试
- 1 用鼠标在「src」上点击右键,选择「New」->「Java Class」新建Java类
- 2 输入类名
HelloWorld
- 3 在代码编辑窗口中输入
psvm
,然后按tab
,IDEA会帮我们生成main
方法 - 4 输入如下代码(在代码编辑窗口中输入「sout」,然后按「tab」,IDEA会帮我们生成System.out.println())
1 package ljp;
2 public class HelloJDB {
3 public static void main(String[] args) {
4 int i = 5;
5 int j = 6;
6 int sum = add(i, j);
7 System.out.println(sum);
8
9 sum = 0;
10 for(i=0; i< 100; i++)
11 sum += i;
12
13 System.out.println(sum);
14 }
15
16 public static int add(int augend, int addend){
17 int sum = augend + addend;
18 return sum;
19 }
20}
-
5 通过「Run」->「Run...」来编译,运行程序,建议大家触通过实践掌握快捷键「Alt+Shift+F10」
-
6选中要运行的类「Hello World」
-
7 调试程序首先要会设置断点和单步运行。设置断点比较简单,在要设置断点的行号旁用鼠标单击一下就行了(或使用Ctrl+F8快捷键),如下图所示,我们在第5行设了个断点
-
8 然后单击菜单「Run」->「Debug...」(或使用Alt+Shift+F9快捷键)开始调试Java程序,我们可以看到程序停留在了第5行
注意,此时第5行代码并没有执行,我们看到变量sum的值并不是11,我们通过单步运行让程序运行到第6行,单步运行有两种:Step Into(快捷捷F7)和Step Over(快捷捷F8),这两种单步运行功能在运行语句时没有区别,在执行方法调用语句时,Step Into
会跳入方法实现,Step Over
会直接执行完方法,实际使用中我们优先使用Step Over
,只有方法执行出错了,说明程序问题在被调用方法中,这时再回来通过Step Into
进入方法进行调试。我们单击一下Step Over
图标(或F8),程序停在了第5行,这时查看变量i的值,会看到sum等于11。
- 9 单步执行效率比较慢,如果我们感觉到第5行到第8行的代码没有问题了,想让程序直接运行到第9行,怎么办?首先我们要在第9行设置断点,然后单击Resume图标(快捷键F9),程序就运行到了第11行
- 10 单步执行效率比较慢还导致另外一个问题,比如一个大循环中间出了问题怎么办?这时可以通过条件断点解决问题。设置条件断点,我们在第9行左边断点处单击鼠标右键,弹出断点属性框,我们设置条件“i==50”.
按一下F9,我们可以查看i的是50了
- 11 临时断点,断点只中断一次,比如我们想把第9,10行的for循环一下子运行完,我们就需要在第12行设个条件断点。我们可以在第十二行设个断点,然后鼠标右击断点;然后点「More」或按快捷键Ctrl+Shift+F8打开断点设置窗口,选中「Remove Once hit」
也可以把光标移到第12行,两次按快捷键Ctrl+Shift+F8
打开断点设置窗口,选中「Remove Once hit」;最简单的方法是把光标移到第12行,使用菜单「Run」->「Toggle Temporary Line Breakpoint」或使用快捷键Ctrl+Alt+Shift+F8
;断点上面有个1,运行一次就消失了
解决问题的方法也可以不使用临时断点,把光标移到第12行,使用菜单「Run」->「Run to Cursor」或使用快捷键Alt+F9
- 12 方法断点:有时候我们怀疑某个方法出错了,就可以设置方法断点。把光标移到方法中的任一行,使用菜单「Run」->「Toggle Method Breakpoint」.