赞
踩
本次Java语言程序实验主要是以集成开发环境eclipse来运行Java文件。
1、掌握集成开发环境eclipse64位的下载安装
2、掌握使用eclipse进行不同版本JDK的切换
3、掌握在eclipse创建和运行Java代码的基本原理和方法
4、熟悉*Maven项目的创建方法,实现软件复用
1、eclipse64位的安装
2、在eclipse中切换JDK8、JDK11和JDK17
3、在eclipse中建立自己的fx17模块
4、用eclipse图形程序
5、建立起一个Java项目,分析其目录构成
6、使用eclipse自动创建类与方法
7、使用eclipse进行程序调试
8、junit测试的简单说明
9、*maven的项目
1、实验设备:
笔记本电脑一台
2、运行环境:
操作系统 版本 Windows 11
软件环境 JDK8 11 17
集成开发环境 eclipse64位
前往ECLIPSE官网(https://www.eclipse.org/),通过Download进入eclipse产品选择界面。
进入上图所示界面后,如果Mirror地区显示不是中国,点击Select Another Mirror,选择中国所在地后点击Download进行下载,得到安装包。
双击安装包根据提示进行安装。
点击选择Eclipse IDE for Java Developers。点击INSTALL进行下载(建议勾选桌面快捷方式),点击LAUNCH继续。然后点击选择工作空间(路径)后点击launch继续,完成安装。
至此,eclipse安装完成。
JDK是eclipse的底层基础,缺少了JDK的eclipse无法运行。目前是JDK11,切换成JDK8.
打开eclipse,点击Window下的Preferences,打开Preferences窗口。
在Window→Preferences打开Preferences窗口,点击Java—Installed JREs,右侧界面打开Installed JREs后点击Add,出现Add JRE窗口,在窗口里选择Standard VM,点击Next->继续。
在打开的Add JRE窗口,点击Directory浏览目录定位到JDK8文件,即JRE home里面是所安装的JDK的路径,然后点击Finish。
① 打开Installed JREs窗口选择JDK8应用,保存并关闭窗口。
② 点击Java—Complier后将JDK11改成JDK1.8应用,保存并关闭窗口。
至此,JDK11切换成JDK8完成。
在安装e(fx)clipse之前eclipse没有创建javafx项目这一选项,新建项目选择其它(CTRL + N),在选项卡里面并没有javafx项目选项。这时需要安装e(fx)clipse插件才能创建javafx项目。
在eclipse菜单找到hele,点击help下的Install New Software...。
在Install窗口点击Add后,在Add Repository窗口下将新的Repository命名为e(fx)clipse,在location内填入e(fx)clipse的下载地址:http://download.eclipse.org/efxclipse/updates-nightly/site,添加好后点击该窗口的Add后点击Install窗口的next。
接着在Istall窗口勾选下图所示选项后点击next继续。
在下图所示界面点击next继续安装。接着按照提示点击接受协议后点击Finish等待安装完成。
至此,e(fx)clipse安装完成。
e(fx)clipse安装完成,新建项目已经出现了javafx project选项。
点击next,建立项目后发现项目图标有红色标识,文件无法编译。此时需要导入javafx包才能使图形程序运行,javafx17包如图28所示。
右键点击java文件,选择Properties。 在弹出的Properties窗口左侧点开Java Build Path,弹出Java Build Path窗口后点击Libraries—>Modulepath,在Modulepath下添加新的Library,即点击其右侧的Add Library...弹出Add Library窗口后选择User Library,点击Next继续。
点击Add Library窗口下的User Libraries...后弹出Preferences窗口,在该窗口点击New...弹出New User Library窗口,在New User Library窗口的User library name下填入所建立的fx模块的名字,点击OK保存。
此时Defined user libraries下方会出现自定义的library,点击Add External JARs...弹出JAR Selection窗口,在此窗口下定位到下载好的javafx包的lib目录,全选lib目录下的文件选择打开,导入javafx包。
导入javafx包后点击Apply and Close保存关闭.
至此,javafx17包导入完成。
回到Add Library窗口勾选所建立的fx17模块,点击Finish。
此时回到 Java Build Path窗口,Modulepath下面已经出现了建立的fx17 模块,点击Apply and Close进行保存应用。
至此,在eclipse中建立自己的fx17模块操作完成。
此时运行图形程序会提示缺少运行时组件。需要添加VM参数,图形程序才能正确运行。
在菜单栏找到Run,点击其下的Coverage configurations...。 弹出Coverage Configurations的窗口后,在该窗口点击Arguments,在VM argument输入以下指令:--module-path “(javafx17的lib目录所在路径)” --add-modules javafx.controls,javafx.fxml,输入后点击Coverage完成。
配置VM参数后就可以运行图形程序了。
用eclipse运行HappyFace.java的图形程序代码如下。
- import javafx.application.Application;
- import javafx.scene.canvas.Canvas;
- import javafx.scene.Scene;
- import javafx.scene.Group;
- import javafx.stage.Stage;
- import javafx.scene.canvas.GraphicsContext;
- import javafx.scene.shape.ArcType;
- /**
- JavaFX Application that displays a happy face.
- Author: Jane Q. Programmer
- Revision of Listing 1.2.
- */
-
- public class HappyFace extends Application
- {
- public static final int WINDOW_WIDTH = 400;
- public static final int WINDOW_HEIGHT = 300;
-
- public static final int FACE_DIAMETER = 200;
- public static final int X_FACE = 100;
- public static final int Y_FACE = 50;
-
- public static final int EYE_WIDTH = 10;
- public static final int EYE_HEIGHT = 20;
- public static final int X_RIGHT_EYE = 155;
- public static final int Y_RIGHT_EYE = 100;
- public static final int X_LEFT_EYE = 230;
- public static final int Y_LEFT_EYE = Y_RIGHT_EYE;
-
- public static final int MOUTH_WIDTH = 100;
- public static final int MOUTH_HEIGHT = 50;
- public static final int X_MOUTH = 150;
- public static final int Y_MOUTH = 160;
- public static final int MOUTH_START_ANGLE = 180;
- public static final int MOUTH_DEGREES_SHOWN = 180;
-
- public static void main(String[] args)
- {
- launch(args);
- }
-
- @Override
- public void start(Stage primaryStage) throws Exception
- {
- Group root = new Group();
- Scene scene = new Scene(root);
-
- Canvas canvas = new Canvas(WINDOW_WIDTH, WINDOW_HEIGHT);
- GraphicsContext gc = canvas.getGraphicsContext2D();
- // Draw face outline
- gc.strokeOval(X_FACE, Y_FACE, FACE_DIAMETER, FACE_DIAMETER);
- // Draw eyes
- gc.fillOval(X_RIGHT_EYE, Y_RIGHT_EYE, EYE_WIDTH, EYE_HEIGHT);
- gc.fillOval(X_LEFT_EYE, Y_LEFT_EYE, EYE_WIDTH, EYE_HEIGHT);
- // Draw mouth
- gc.strokeArc(X_MOUTH, Y_MOUTH, MOUTH_WIDTH, MOUTH_HEIGHT,
- MOUTH_START_ANGLE, MOUTH_DEGREES_SHOWN, ArcType.OPEN);
-
- root.getChildren().add(canvas);
- primaryStage.setTitle("HappyFace in JavaFX");
- primaryStage.setScene(scene);
- primaryStage.show();
- }
- }
用eclipse运行HappyFace.java的图形程序结果如下。
点击菜单上的File,选择New,点击Java Project新建Java项目后在弹出的窗口,于Project name后为该项目取一个名字,然后根据自己需要修改该项目的存储地址后,点击Finish后会eclipse左侧会出现下图中方框1的文件标识,右键单击新建的Java项目选择New,点击新建Package会弹出图46的窗口,给这个包命名后点击Finish完成包的创建。
eclipse左侧会出现图中ch01的文件标识,右键单击新建的包选择New,点击新建Class会弹出下的窗口,给这个java文件命名后点击Finish完成java文件的创建。
至此,普通Java项目的建立完成。
在创建Java项目中提到我们手动创建类的方法。为了方便,我们在手动创建好一个主函数后,可以快速创建相关的所需要用到的类。
建立主函数所在类中输入Set <类名> set = new TreeSet<类名>();,这里设置类名为Person。
选中第一个类名,同时按下Ctrl和1会弹出方框,双击方框内的Create class ‘类名’的选项,会出现下图的方框,在选择类的属性后点击Finish即可完成。完成后就会成功建起我们所需类。
至此,快速创建类的操作演示完毕。
首先在类中定义好成员数据。
①自动生成类中自定义变量的设置方法和获取方法
选择菜单中的Source下的Generate Getters and Setters...,在弹出的方框勾选设置的成员数据,选择该方法的属性后点击Generate即可完成设置方法和获取方法的自动创建。
②自动生成类中带参数的构造器函数,并把参数赋值给类的成员
选择菜单中的Source下的Generate Constructor using Fields...,在弹出的方框勾选设置的成员数据,选择该方法的属性后点击Generate即可完成设置方法和获取方法的自动创建。
③自动生成类中默认的构造函数
选择菜单中的Source下的Generate Constructor from superclass...,在弹出的方框里勾选Object,选择该方法的属性后点击Generate即可完成设置方法和获取方法的自动创建。
④自动生成类中toString函数
选择菜单中的Source下的Generate toString()...,在弹出的方框勾选成员数据,选择该方法的属性后点击Generate即可完成设置方法和获取方法的自动创建。
⑤自动生成类中 hashCode() 和 equals()函数
选择菜单中的Source下的Generate hashCode() and equals()...,在弹出的方框勾选成员数据,选择该方法的属性后点击Generate即可完成设置方法和获取方法的自动创建。
至此,类中自动创建方法操作完成。
Debug模式是在eclipse的使用中常见的对程序进行debug的方式,通过debug模式可以更加方便快捷的定位问题出现的位置,并且找到原因进行修改。
点击菜单的Run,选择其下的Debug As,点击JavaApplication即可运行。
在Java代码的行号处使用鼠标双击出一个断点,这样当我们的程序使用debug模式运行到断点处时,程序会暂停在这里,等待下一步运行的指令。找到需要设置为断点的语句,在其行号前双击可设置断点,也可以通过点击右键选择Toggle Breakpoint设置断点。
这样当程序使用debug模式运行到断点处时,程序会暂停在这里等待下一步运行的指令。
按两下Ctrl+F6,即输入两步指令,代码往下执行了两行。
如图所示,方框1是Debug模式主窗口,方框2是代码区,方框3是程序内当前变量以及变量值,方框4是控制台。
(图77 Debug控制按钮图标示意图)
Debug控制按钮从左到右非灰色图标功能分别是:运行到当前方法的下一断点、结束当前主程序或者停止server、进入当前断点所在子方法、进入当前断点所在方法的下一步。
至此,使用eclipse进行程序调试的操作完成。
单元测试是针对最小的功能单元编写测试代码,Java程序最小的功能单元是方法。单元测试可确保单个方法运行正常,如果修改了方法代码,只需要确保其对应的单元测试通过。单元测试可以自动化运行所有测试并获得报告。
JUnit是一个开源的Java语言的单元测试框架,专门针对Java语言设计。
在eclipse建立好普通的.java文件,右键点击JUnitTest1,选择New点击Source Folder。在New Source Folder窗口为文件取名,然后点击Finish建立JUnit测试文件夹。右键点击需测试的方法所在的.java文件,点击New—>JUnit Test Case。
在New JUnit Test Case窗口选择New JUnit 4 test,点击Browse选择该测试的.java文件所在的文件夹,然后点击Next,这里选择将测试的.java文件放入新建的test文件夹中。用该方法建立测试文件自动选择好所在的包并自动生成名字,不需我们更改。然后在接下来的窗口中勾选需测试的方法,点击Finish后完成建立。
用JUnit新建的单元测试视图如图所示。
至此,JUnit测试文件建立完成。
点击运行用JUnit生成的.java文件。运行用JUnit生成的.java文件结果显示方法测试结果为两个方法皆不通过。
我们需要调用assertEquals进行测试,测试的具体指令为assertEquals(<期望结果>,new <类名>().<所需测试的方法>),本次的指令语句为assertEquals(3,new Calculatior().add(1, 2));和assertEquals(4,new Calculatior().cut(5, 1));。
使用assertEquals方法测试时输入不规范参数结果,左下角方框内会提示原.java文件的哪条语句出错,修改好后可以继续测试,且该方法测试不通过不影响其余方法测试通过。
至此,JUnit的简单测试完毕。
maven是一个项目构建和管理的工具,提供了帮助管理 构建、文档、报告、依赖、scms、发布、分发的方法。可以方便的编译代码、进行依赖管理、管理二进制库等等。
maven的好处在于可以将项目过程规范化、自动化、高效化以及强大的可扩展性。利用maven自身及其插件还可以获得代码检查报告、单元测试覆盖率、实现持续集成等等。
在菜单中找到File,点击找到New,选择新建Project。在弹出的New Project窗口选择Maven Project,点击Next继续。 在如图所示窗口内勾选创建项目,选择项目存放位置后点击Next继续。
在出现的弹窗内,填写组织名(Group Id)、父工程名(Artifact Id),选择打包的类型为jar后点击next完成创建。
创建后在eclipse中会出现一个jar包,如图92所示,打包了所需Java项目,其中pom.xml为maven主要配置文件。
Maven各目录存放资源类型说明:
目录路径 | 存放资源类型 |
src/main/java | 项目java源码 |
src/main/resources | 项目的相关配置文件 |
src/main/webapp | web资源(比如html,css,js等) |
src/test/java | 测试代码 |
src/test/resources | 测试相关配置文件 |
src/pom.xml | 项目pom文件 |
在一个Maven项目中,在项目根目录下,除了包含了上面约定的目录结构中的部分目录外,还包含了项目描述文件,pom.xml文件。
在根目录下,主要有两个目录,分别是src和target目录,除此之外,还会有一些版本控制系统的元数据文件,包括git的.gitignore或者svn的.svn。如果一个项目时由多个子项目组成的,那么在该项目的根目录下,还会包含它的子项目的目录。子项目的目录布局,默认也是和上面列出的目录结构一致的。src目录下,包含了项目所有的源代码和资源文件,以及其他项目相关的文件。在该目录的main目录下,包含了构建该项目的artifact所需的代码和资源,而test目录包含了测试相关的代码和资源文件。
在目录main和test下的子目录结构,是非常相似的,都包含了两个子目录:java子目录和resources子目录,这两个目录分别放了源代码和资源文件。不同的是,在main目录下的这两个目录中放置了项目主程序的代码,而在test目录下,放置的是测试相关的代码和资源文件。其中java目录是代码的根目录,在该目录下的子目录,就是Java的包名对应的目录结构了。
记录我那备受折磨的大二选修Java:Java很好,别选这门课,快逃!!!!!!!!!!
[1]肯里克·莫克[美],沃特·萨维奇[美国].Java程序设计与问题求解.机械工业出版社,2019,03(01).
[2]参考了其他大佬们的博客,但忘记地址了(磕头orz)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。