20165228 实验一 Java开发环境的熟悉
20165228 实验一 Java开发环境的熟悉
一、实验内容及步骤
(一)使用JDK编译、运行简单的Java程序
- 命令行下Java程序开发
1.用VrtualBox打开Linux虚拟机

2.使用Alt+Ctrl+T来打开命令行

3.使用mkdir java创建一个名为java的目录,使用cd java进入该目录

4.使用mkdir 20165228创建名为学号的目录,使用cd 20165228进入该目录

5.在目录20165228下创建第一个实验目录,并进入该目录

6.创建相应的bin和src文件夹来对.java和.class进行分类

7.使用vim Hello.java来编辑该程序,编辑完成后,使用mv Hello.java src,将编辑好的程序移动到事先创建的src文件夹下


8.使用javac -d bin src/Hello.java编译程序,并将得到的class文件输出到bin目录下。然后使用java -cp bin szk.Hello运行带包的程序

(二)IDEA下Java程序开发、调试
1.进入IDEA创建项目后,右键src-->New-->Java class

2.输入HelloJDB,选择OK

3.输入代码并点击run(快捷键Alt+Shift+F10)

4.在第6行设置断点后,进行Debug(快捷键Alt+Shift+F9),程序会运行到第6行时截止,可以观察到此时的各个变量值的情况


5.此时可以进行Step into(快捷键F7)和Step over(快捷键F8)继续单步执行
- 以下是其区别
step into(快捷键F7):单步执行,遇到子函数就进入并且继续单步执行
step over(快捷键F8):是在单步执行时,在函数内遇到子函数时不会进入子函数内单步执行,而是将子函数整个执行完再停止,也就是把子函数整个作为一步
step out(Shift+F8):当单步执行到子函数内时,用step out就可以执行完子函数余下部分,并返回到上一层函数。

6.在第9行再设置一个断点,使用Resume Program(快捷键F9)来跳过已确认没有问题的代码段

7.设置条件断点,然后运行,得到在该条件下的结果


(三)练习:实现简单四则运算(能支持分数,加减乘除,支持括号),并进行测试(正常情况,异常情况,边界情况)
代码如下:
import java.util.Scanner;
import java.math.BigDecimal;
public class Calculator {
public static void main(String[] args) {
String name1="+";
String name2="-";
String name3="*";
String name4="/";
Scanner scanner=new Scanner(System.in);
System.out.printf("选择四则运算:");
String str=new String(scanner.nextLine());
if(name1.equals(str)){
System.out.printf("请输入需要运算的两个数字,以空格分割:");
BigDecimal a=new BigDecimal(scanner.nextFloat());
BigDecimal b=new BigDecimal(scanner.nextFloat());
System.out.printf(a+"+"+b +"结果是%f\n",a.add(b));
}
else if(name2.equals(str)){
System.out.printf("请输入需要运算的两个数字,以空格分割:");
BigDecimal a=new BigDecimal(scanner.nextFloat());
BigDecimal b=new BigDecimal(scanner.nextFloat());
System.out.printf(a+"-"+b +"结果是%f\n",a.subtract(b));
}
else if(name3.equals(str)){
System.out.printf("请输入需要运算的两个数字,以空格分割:");
BigDecimal a=new BigDecimal(scanner.nextFloat());
BigDecimal b=new BigDecimal(scanner.nextFloat());
System.out.printf(a+"*"+b +"结果是%f\n",a.multiply(b));
}
else if(name4.equals(str)){
System.out.printf("请输入需要运算的两个数字,以空格分割:");
BigDecimal a=new BigDecimal(scanner.nextFloat());
BigDecimal b=new BigDecimal(scanner.nextFloat());
System.out.printf(a+"/"+b +"结果是%f\n",a.divide(b));
}
else System.out.printf("输入错误");
}
}
- 命令行调试

正常情况:

异常情况:

- IDEA调试
正常情况:

异常情况:

二、实验中遇到的问题
- 问题1:在设计完代码后, 调试时提示“java.lang.ClassNotFoundException: Calculator”
解决方法:
1.确认你的类库在系统的CLASSPATH下面,如果是Tomcat,则可以放在tomcat/lib/目录下面。
2 删除重复的类库,只保留最新的 - 问题2:用IDEA调试代码时,会提示找不到主类,让我很疑惑。因为命令行调试时完全正常
解决方法:
IDEA环境的问题,在项目的project structure 中,先将项目指定JDK ,然后在项目的PATH 中,将path修改为跟当前项目在一个路径下
三、实验体会与总结
- 前面的实验部分,巩固了前几周娄老师在课上强调的在目录下编译和运行子目录下的程序以及带包程序的运行知识。
- 对于后面的练习,带括号的运算对我现在的水平来说是不容易理解的,所以我只写了一个普通的四则运算程序。
- 由于未能想到四则运算的边界,所以我也没有测试其边界值。
20165228 实验一 Java开发环境的熟悉的更多相关文章
- 20145205 实验一 Java开发环境的熟悉
实验内容 命令行下Java程序开发 IDEA下Java程序开发.调试 练习(通过命令行和Eclipse两种方式实现,在Eclipse下练习调试程序) 实现凯撒密码,并进行测试 实验要求 使用JDK编译 ...
- 实验一 Java开发环境的熟悉
实验一 Java开发环境的熟悉(Linux + Eclipse) 实验内容 1.使用JDK编译.运行简单的Java程序: 2.使用Eclipse 编辑.编译.运行.调试Java程序. 实验要求 1.没 ...
- 20145308刘昊阳 《Java程序设计》实验一 Java开发环境的熟悉 实验报告
20145308刘昊阳 <Java程序设计>实验一报告 实验名称 Java开发环境的熟悉 实验内容 使用JDK编译.运行简单的Java程序 2.使用Eclipse 编辑.编译.运行.调试J ...
- 实验一Java开发环境的熟悉
实验一Java开发环境的熟悉 实验内容 •命令行下Java程序开发 •IDEA下Java程序开发.调试 •练习(通过命令行和Eclipse两种方式实现,在Eclipse下练习调试程序) •实现凯撒密码 ...
- 20145225《Java程序设计》实验一 Java开发环境的熟悉(Linux + Eclipse)
20145225<Java程序设计> 实验一 Java开发环境的熟悉(Linux + Eclipse) 实验内容 1.使用JDK编译.运行简单的Java程序: 2.使用Eclipse 编辑 ...
- 20145208实验一 Java开发环境的熟悉
20145208实验一 Java开发环境的熟悉 使用JDK编译.运行简单的java程序 命令行下程序开发 在命令行下建立实验目录,然后创建并进入该目录后的子目录. 编译并运行一个代码 使用IDEA 编 ...
- 实验一 Java开发环境的熟悉(Linux + Eclipse)
学号 20175206 实验一 <Java开发环境的熟悉>实验报告 实验内容 1.使用JDK编译.运行简单的Java程序: 2.使用Eclipse 编辑.编译.运行.调试Java程序. 实 ...
- 实验一 Java开发环境的熟悉(Linux + Idea) 20175301李锦然
https://gitee.com/ShengHuoZaiDaXue/20175301.git 实验一 Java开发环境的熟悉(Linux + Idea) 实验内容 1.使用JDK编译.运行简单的Ja ...
- 2018-2019-2 实验一 Java开发环境的熟悉
实验内容 1.使用JDK编译.运行简单的Java程序: 2.使用IDEA编辑.编译.运行.调试Java程序 实验知识点 1. JVM.JRE.JDK的安装位置与区别: 2. 命令行运行javac:ja ...
随机推荐
- Mysql for Linux安装配置之—— rpm(bundle)安装
1.准备及安装1)下载rpm安装包(或rpm bundle) rpm安装包包括两个(bundle会更多),一个是client,另一个是server,例如:MySQL-client-5.5.44-1. ...
- JS时钟--星期 年 月 日 时 分
var clock = function(clockName){ var mydate = new Date(); var hours = mydate.getHours(); var minutes ...
- 网页定位点击事件js响应函数教程(Chrome)
一.背景说明 在前端页面调试或者渗透测试(尤其是XSS)时,我们经常想定位js函数位置:比如点击了某个位置弹出了一个对话框,这是哪个文件的哪个js函数在响应. 本文以Chrome浏览器定位点击事件响应 ...
- qq远程连接/windows远程桌面/teamviwer/xmanager/vnc的区别
软件 客户端运行平台 服务端运行平台 服务端是否需要同子网或公网IP 网络断开当前执行命令是否会中止 评价 QQ远程连接 windows windows 否 否 感觉用了一两分钟就动不了了 windo ...
- PHP隐藏版本号教程
PHP本身并不启监听服务,所以预防扫描器扫描通过版本号判断漏洞,我们要隐藏的是http头处的版本号,而不是隐藏系统命令行处的版本号. 1.查看当前php版本号 访问一当前服务中的任意页面,截取响应数据 ...
- Windows和Linux创建软链接和硬链接
1.Wondows创建软链接和硬链接 mklink [/d] [/h] link target /d--创建目录软链接:默认为文件软链接:创建目录链接时必须使用该选项不然创出的软链接无效 /h--创建 ...
- 撤销commit
如果不小心commit了一个不需要commit的文件,可以对其进行撤销. 先使用git log 查看 commit日志 commit 422bc088a7d6c5429f1d0760d008d86c5 ...
- 微信PC客户端无法发送图片,怎么解决?
今天登陆电脑的微信客户端,无法发送截图图片,该怎么办? 解决方法 1.在任务栏找到程序,右键找到设置
- 【配置】pom.xml的配置
pom.xml的配置: 地址:https://mvnrepository.com/ 示例:配置log4j 1.在搜索框中搜索log4j 2.在搜索结果页点击log4j 3.选择一个最新的版本,点击 4 ...
- windows 执行bat脚本
bat脚本中运行另外一个bat脚本 call 命令 call1.bat内容如下 echo running call1 call2.bat内容如下 @echo off echo start call c ...