您的位置:首页 > 编程语言 > Java开发

实验一 Java开发环境的熟悉

2015-04-16 00:03 375 查看
北京电子科技学院(BESTI)课程:Java程序设计 班级:1353 姓名:陈巧然 学号:20135310成绩: 指导教师:娄佳鹏 实验日期:2015.4.13实验密级: 预习程度: 实验时间:18:30~21:00仪器组次:10 必修/选修: 实验序号:1实验名称: Java开发环境的熟悉实验目的与要求:1.使用JDK编译、运行简单的Java程序2.使用Eclipse 编辑、编译、运行、调试Java程序3.没有Linux基础的同学建议先学习《Linux基础入门(新版)》《Vim编辑器》 课程4.实验报告中统计自己的PSP(Personal Software Process)时间实验仪器:
名称型号数量
PCMacBook(win7)1
虚拟Linux系统实验楼虚拟机1
说明:在实验楼的实际操作过程中未截图,此报告中过程为二次在win7系统的cmd和eclipse中操作完成。

一、实验步骤

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

1.双击桌面上的
Xface终端
图标,打开终端(类似Windows下的cmd),之后会自动运行shell程序(win7系统中打开开始菜单,点击命令提示符,运行cmd)2.输入【
cd Code】
命令进入Code目录,输入【
mkdir 20135310】
命令建立实验目录,可以使用【
ls】
命令或【
dir】
命令查看建立的目录情况(win7中输入【
cd Code】
命令进入Code目录,输入【
mkdir 20135310】
或【md 20135310】命令建立实验目录,用【
dir】
命令查看建立的目录情况)3.输入【
cd 20135310】
命令进入实验目录,再输入类似【
mkdir exp1】
建立第一个实验目录,然后输入【
cd exp1】
进入实验一目录,可以输入【
pwd】
命令查看当前工作路径(win7下建立目录的指令同上,当前工作路径已显示)4.输入【
gedit Hello.java】
注意把代码保存到exp1目录中)或【
vim Hello.java】
(建议大家花点时间学习一下Vim)编辑Hello.java,并输入以下代码:
package cqr;
import java.util.Scanner;
public class Hello{
public static void main(String[] args){
System.out.println("Input your first name, please:");
Scanner s = new Scanner(System.in);
String name = s.next();
System.out.println("Hello " + name + " !");
}
}
(win7下在命令行中输入【echo>Hello.java】创建java文件,输入【Hello.java】打开java文件进行编辑,代码同上)
注意代码的第一行,这会影响到我们使用javac编译代码的方式。注意代码第二行,我们使用到Java类库中的类时,要用import导入相关的类(C语言中的include),导入路径可以查看JDK帮助文档,比如我们使用到了Scanner类,路径为
java.util.Scanner
5.
输入【
javac -d . Hello.java】
命令编译代码,输入【
java cqr.Hello
命令运行程序。
注意:代码中有package时,使用javac编译代码时一定要加-d参数,运行代码时一定要加包名前缀

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

1.在命令行中输入【
eclipse】
命令并回车或单击桌面上的Eclipse EE图标打开Eclipse(win7中进入eclipse.exe所在目录,输入【eclipse.exe】打开eclipse)2.在Eclipse中单击【
File->New-> Java Project】
新建Java项目3.输入项目名称【
HelloWorld】
,并单击【
Finish】
按钮完成新建项目4.在Eclipse中单击【
File->New->Class】
新建Java类5.根据Java代码规范输入包名【cqr
(小写),类名【
HelloWorld】
(单词首字母大写),并勾选上自动产生main函数选项,最后单击
Finish
按钮6.输入如下代码,单击运行按钮(或使用【
Ctrl+F11】
快捷键),就可以在控制台(Console)中看到运行结果
 package cqr;public class HelloWorld {public static void main(String[] args) {int i = 5;int j = 6;int sum = add(i, j);System.out.println(sum);
 sum = 0;for(i=0; i< 100; i++)sum += i;
 System.out.println(sum);}public static int add(int augend, int addend){int sum = augend + addend;return sum;}}
7.调试程序,首先通过单击【
Window->Open Perspective->Debug】
打开调试视图8.设置断点,在第四行左边右键,点击【Toggle Breakpoint】,然后单击调试按钮(或使用【
F11】
快捷键)开始调试Java程序,我们可以看到程序停留在了第4行注意,此时第4行代码并没有执行,我们可以把鼠标放到变量名上来查看变量的值,此时i的值并不是5,我们通过单步运行让程序运行到第5行,单步运行有两种:【Step Into】(快捷捷F5)和【Step Over】(快捷捷F6),这两种单步运行功能在运行语句时没有区别,在执行函数调用语句时,【
Step Into】
会跳入函数实现,【
Step Over】
会直接执行完函数,实际使用中我们优先使用【
Step Over】
,只有函数执行出错了,说明程序问题在被调用函数中,这时再回来通过【
Step Into】
进入函数进行调试。单击一下【
Step Over】
图标(或【
F6】
),程序停在了第5行,这时查看变量i的值,会看到i等于5。9.单步执行效率较慢,要想让程序直接运行到第11行,可以在第11行设置断点,然后单击【
Resume】
图标(快捷键【
F8】
),程序就运行到了第11行10.设置条件断点:在第11行左边单击鼠标右键,选择【
Breakpoint Properties...】,设置条件【i==50】
按一下【F8】,我们可以查看i的值是50

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

题目:实现凯撒密码,并进行测试。代码如下:

import java.io.*;import java.util.Scanner;class kaisa{public static void main(String[] args){System.out.println("Please input the key:");Scanner s=new Scanner(System.in);int a =s.nextInt();C(a);}public static void C(int k){try{char b[];BufferedReader br2=new BufferedReader(new InputStreamReader(System.in));System.out.println("Please input the plain:");String str2=br2.readLine();b=str2.toCharArray();System.out.println("The cipher:");for (int i=0;i<str2.length() ;i++ ){char ch =(char)((b[i]-'a'+k)%26+'a');System.out.print(ch);}System.out.println();}catch (IOException e){System.out.println(e.getMessage());}System.out.println("key="+k);}}
运行:

二、总结

(一)PSP时间

步骤耗时百分比
需求分析56.25%
设计56.25%
代码实现4050%
测试2025%
分析总结10 12.5%

(二)遇到的问题和解决方法

1.命令行常用指令不熟练,Linux和Windows下的命令行指令大致相同,但很多细节方面不太一样,如windows下不能用【ls】查看目录、不需要输入【pwd】直接可显示当前工作路径等2.Eclipse中,当打出前括号时会自动生成后括号,一开始因为不知道总是多出很多后括号,导致编译失败3.实验楼虚拟机运行慢、反应迟钝,且很容易卡死挂住,加上学校内网速普遍偏慢,浪费太多时间。

(三)收获和感想

1.学到一些新的常见命令行指令,如 编译一个.java文件 :javac -d . 类名.java;在命令行中运行.class文件:java 包名.类名等2.初次体验Linux和虚拟机,不知道是实验楼还是网速或者别的原因,总之感觉很不好……实验内容步骤都很基础,本可以很快完成,但实际却耗费我两晚的自由学习时间。个人觉得实验楼是前景不错的技术学习、交流平台,但尚未发展成熟。后面的实验若还是这种将大把时间用在等虚拟机反应上,我更愿意对照步骤在Windows系统中完成;另一方面,打算有空时多接触Linux环境,感受java的跨平台性并且学习处理不同平台间的差异和联系。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: