实验一 Java开发环境的熟悉(Linux + Eclipse)

实验内容

1.使用JDK编译、运行简单的Java程序;

2.使用Eclipse 编辑、编译、运行、调试Java程序。

实验要求

1.没有Linux基础的同学建议先学习《Linux基础入门(新版)》《Vim编辑器》 课程;

2.完成实验、撰写实验报告,实验报告模板见QQ群,注意实验报告重点是运行结果,遇到的问题(工具查找,安装,使用,程序的编辑,调试,运行等)、解决办法(空洞的方法如“查网络”、“问同学”、“看书”等一律得0分)以及分析(从中可以得到什么启示,有什么收获,教训等);

3.实验报告中统计自己的PSP(Personal Software Process)时间:

步骤 耗时 百分比
需求分析
设计
代码实现
测试
分析总结

4. 严禁抄袭。

实验知识点

1. JVM、JRE、JDK的安装位置与区别;

2. 命令行运行javac;java;javac -cp; java -cp;

3. PATH,CLASSPATH,SOURCEPATH的设定方法与应用;

4. 包管理:package;import;javac -d ;

5. Eclipse(Netbeans)管理Java项目,调试:断点、单步执行等;

6. Java基础语法:类型与类型转换;变量;运算符;流程控制等;

7. JDK帮助文档的使用。

实验步骤

(一)命令行下Java程序开发

  1. 首先双击桌面上的Xface终端图标,如下图所示:

  2. 打开终端(类似Windows下的cmd),之后会自动运行shell程序,如下图所示:

  3. 输入cd Code命令进入Code(注意C要大写)目录,如下图所示:

  4. 输入mkdir 20135100 命令建立实验目录,注意目录名一定是自己的学号(学号要体现在实验报告截图中),可以使用ls命令或dir命令查看建立的目录情况。如下图所示:

  5. 输入cd 20135100命令进入实验目录,再输入类似mkdir exp1建立第一个实验目录,然后输入cd exp1进入实验一目录,可以输入pwd命令查看当前工作路径,如下图所示:

  6. 输入gedit Hello.java注意把代码保存到exp1目录中)或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 }

注意代码的第一行,这会影响到我们使用javac编译代码的方式。

注意代码第二行,我们使用到Java类库中的类时,要用import导入相关的类(你可以暂时理解为C语言中include的功能),导入路径可以查看JDK帮助文档,比如我们使用到了Scanner类,路径见下图中红框:

7.输入javac -d . Hello.java命令编译代码,输入java ljp.Hello命令运行

程序。结果如下图所示:

注意:代码中有package时,使用javac编译代码时一定要加-d参数,运行代码时一定要加包名前缀

(二)Eclipse下Java程序开发、调试

  1. 在命令行中输入eclipse命令并回车或单击桌面上的Eclipse EE图标打开Eclipse,如下图所示:

  2. 在Eclipse中单击File->New-> Java Project新建Java项目,如下图所示:

  3. 输入项目名称HelloJDB(你可以自己起名),并单击Finish按钮完成新建项目,如下图所示:

  4. 在Eclipse中单击File->New->Class新建Java类,如下图所示:

5.根据Java代码规范输入包名ljp(小写,可以自定义),类名HelloJDB(单词首字母大写),并勾选上自动产生main函数选项,最后单击Finish按钮,如下图所示:

6.输入如下代码:

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}

7.单击运行按钮(或使用Ctrl+F11快捷键),就可以在控制台(Console)中看到运行结果。如下图所示:

8.下面我们练习调试程序,首先我们通过单击Window->Open Perspective->Debug打开调试视图,如下图所示:

9.调试程序首先要会设置断点单步运行。设置断点比较简单,如下图所示:



然后单击调试按钮(或使用F11快捷键)开始调试Java程序,我们可以看到程序停留在了第4行,如下图所示:



注意,此时第4行代码并没有执行,我们可以把鼠标放到变量名上来查看变量的值,此时i的值并不是5,我们通过单步运行让程序运行到第5行,单步运行有两种:Step Into(快捷捷F5)Step Over(快捷捷F5),这两种单步运行功能在运行语句时没有区别,在执行函数调用语句时,Step Into会跳入函数实现,Step Over会直接执行完函数,实际使用中我们优先使用Step Over,只有函数执行出错了,说明程序问题在被调用函数中,这时再回来通过Step Into进入函数进行调试。我们单击一下Step Over图标(或F6),程序停在了第5行,这时查看变量i的值,会看到i等于5。如下图所示:

10.单步执行效率比较慢,如果我们感觉到第6行到第10行的代码没有问题了,想让程序直接运行到第11行,怎么办?首先我们要在第11行设置断点,然后单击Resume图标(快捷键F8),程序就运行到了第11行,如下图所示:

11.单步执行效率比较慢还导致另外一个问题,比如一个大循环中间出了问题怎么办?这时可以通过条件断点解决问题。调试循环代码时,会有一个值我们特别关注,这时在Variable标签中查看变量的值,比如我们此时比较关注sum,每次单步执行都可以看到sum的变化情况了,

设置条件断点,我们在第11行左边单击鼠标右键,选择Breakpoint Properties...如下图所示:



我们设置条件“i==50”,如下图所示:



按一下F8,我们可以查看i的是50了。如下图所示:

掌握这些调试的基本技巧可以解决大家平时遇到的大部分问题,其他调试方法可以参见参考资料。

(三)练习(通过命令行Eclipse两种方式实现,自己的学号后两位与题目总数取余的结果再加上1就是自己要完成的题号,在Eclipse下练习调试程序)

1. 实现凯撒密码并进行安全加固,并进行测试(正常情况,异常情况,边界情况)。

2. 实现简单四则运算(能支持分数,加减乘除,支持括号),并进行测试(正常情况,异常情况,边界情况)。

3. 实现Fibonacci数列功能,并进行测试(正常情况,异常情况,边界情况)。

4. 实现学生成绩管理功能(增删改,排序,查找),并进行测试(正常情况,异常情况,边界情况)。

5. 实现求正整数1-N之间所有质数的功能,并进行测试(正常情况,异常情况,边界情况)。

6, 实现求排列数P(n,m)的功能,m,n从命令行输入,并进行测试(正常情况,异常情况,边界情况)。

7, 实现求两个数的最大公约数和最小公倍数的功能,数从命令行输入,并进行测试(正常情况,异常情况,边界情况)。

8. 产生一个随机数,让用户猜测,猜错了告诉用户是大了还是小了。 并进行测试(正常情况,异常情况,边界情况)

9. 判断一个数是不是回文数,数从命令行输入,并进行测试(正常情况,异常情况,边界情况)。

参考资料

  1. Eclipse精粹(Eclipse Distilled)》

  2. Java语言调试技术

  3. 软件调试的艺术(电子版)》

  4. 构建之法电子版)》,著者邹欣Blog


欢迎关注“rocedu”微信公众号(手机上长按二维码)

做中教,做中学,实践中共同进步!



实验一 Java开发环境的熟悉的更多相关文章

  1. 20145205 实验一 Java开发环境的熟悉

    实验内容 命令行下Java程序开发 IDEA下Java程序开发.调试 练习(通过命令行和Eclipse两种方式实现,在Eclipse下练习调试程序) 实现凯撒密码,并进行测试 实验要求 使用JDK编译 ...

  2. 20145308刘昊阳 《Java程序设计》实验一 Java开发环境的熟悉 实验报告

    20145308刘昊阳 <Java程序设计>实验一报告 实验名称 Java开发环境的熟悉 实验内容 使用JDK编译.运行简单的Java程序 2.使用Eclipse 编辑.编译.运行.调试J ...

  3. 实验一Java开发环境的熟悉

    实验一Java开发环境的熟悉 实验内容 •命令行下Java程序开发 •IDEA下Java程序开发.调试 •练习(通过命令行和Eclipse两种方式实现,在Eclipse下练习调试程序) •实现凯撒密码 ...

  4. 20145225《Java程序设计》实验一 Java开发环境的熟悉(Linux + Eclipse)

    20145225<Java程序设计> 实验一 Java开发环境的熟悉(Linux + Eclipse) 实验内容 1.使用JDK编译.运行简单的Java程序: 2.使用Eclipse 编辑 ...

  5. 20145208实验一 Java开发环境的熟悉

    20145208实验一 Java开发环境的熟悉 使用JDK编译.运行简单的java程序 命令行下程序开发 在命令行下建立实验目录,然后创建并进入该目录后的子目录. 编译并运行一个代码 使用IDEA 编 ...

  6. 实验一 Java开发环境的熟悉(Linux + Eclipse)

    学号 20175206 实验一 <Java开发环境的熟悉>实验报告 实验内容 1.使用JDK编译.运行简单的Java程序: 2.使用Eclipse 编辑.编译.运行.调试Java程序. 实 ...

  7. 实验一 Java开发环境的熟悉(Linux + Idea) 20175301李锦然

    https://gitee.com/ShengHuoZaiDaXue/20175301.git 实验一 Java开发环境的熟悉(Linux + Idea) 实验内容 1.使用JDK编译.运行简单的Ja ...

  8. 2018-2019-2 实验一 Java开发环境的熟悉

    实验内容 1.使用JDK编译.运行简单的Java程序: 2.使用IDEA编辑.编译.运行.调试Java程序 实验知识点 1. JVM.JRE.JDK的安装位置与区别: 2. 命令行运行javac:ja ...

  9. 20175208 实验一 Java开发环境的熟悉

    20175208 实验一 Java开发环境的熟悉 一.实验报告封面 课程:Java程序设计 班级:1752班 姓名:张家华  学号:20175208 指导教师:娄嘉鹏 实验日期:2019年4月2日 实 ...

随机推荐

  1. 导入导出oracle数据库表的dmp文件

    1.先进入命令行,点击开始,输入cmd 2.导入的命令是:imp 用户名/密码@网络服务名 file=xxx.dmp full=y; 3.导出的命令是:exp 用户名/密码@网络服务名 file=xx ...

  2. 文件件监听器,android系统拍照功能调用后删除系统生成的照片

    先说说要实现的功能: android调用系统拍照功能实时 预览 删除 上传 保存 (用户不能再本地文件夹中看到拍的照片) 再说说遇到的问题: 1.调用系统拍照在系统自带的拍照文件夹中生成一张随机命名图 ...

  3. Android搭建junit测环境

    在AndroidManifest.xml文件中增加两个东西,分别是: 1.uses-library ,位于application里面. 2.instrumentation,与application同级 ...

  4. x01.os.17: 换心术

    在 linux 中编译 linux, 于是 linux 便有了再生能力.这不同于自然界的缓慢进化,可用神速来形容.—— 和强大的 windows 相抗衡,便是证明! 我在 ubuntu 中的编译方法如 ...

  5. Python使用QRCode模块生成二维码

    QRCode官网https://pypi.python.org/pypi/qrcode/5.1 简介python-qrcode是个用来生成二维码图片的第三方模块,依赖于 PIL 模块和 qrcode ...

  6. 基于vitamio的网络电视直播源码

    这个项目是基于vitamio的网络电视直播源码,也是一个使用了vitamio的基于安卓的网络直播项目源码,可能现在网上已经有很多类似这样的视频播放应用了,不过这个还是相对来说比较完整的,希望这个案例能 ...

  7. C++ 笔记(二) —— 不要在构造和析构函数中调用虚函数

    ilocker:关注 Android 安全(新手) QQ: 2597294287 class Transaction { //所有交易的 base class public: Transaction( ...

  8. openwrt修改flash大小

    前言 默认openwrt trunk编译出来的flash大小为8M,但是我们手上的板子可能flash大小更大,本文以MT7620a为例,将其flash大小由8M修改为16M或者32M 增加dts文件 ...

  9. iTOP-4412嵌入式开发板ioremap控制GPIO寄存器

    转自迅为电子技术论坛:http://bbs.topeetboard.com GPIO 的寄存器通过 ioremap函数转换之后,可以通过直接控制虚拟地址来控制物理地址(寄存器的实际地址),这样就实现 ...

  10. 记录遇到的Python陷阱和注意点

    最近使用Python的过程中遇到了一些坑,例如用datetime.datetime.now()这个可变对象作为函数的默认参数,模块循环依赖等等. 在此记录一下,方便以后查询和补充. 避免可变对象作为默 ...