上一篇介绍的是如何部署Java开发环境,还有安装版本管理工具、IDE、Tomcat等。开发环境弄好了,下一步就是编代码。学习一种新的编程语言,一般都是先编一个HelloWorld的程序。本文就从最简单的程序入手,学学怎么用Eclipse写程序,怎么把程序加入版本管理工具中,怎么加入单元测试。
新建一个Java项目
首先是从Eclipse中新建一个Java项目,Eclipse中可以新建很多类型的项目,目前还不是很清楚每种项目的含义,只能先从最简单的开始,也就是Java Project(这种类型与VS中的控制台程序类似),如下图所示,新装的Eclipse中新建菜单中可能不会直接显示Java Project,需要从New->Project中选择。
在New Project窗口中选择Java Project类型,然后点击下一步。
接下来是编辑项目名称和项目位置,关于窗口中间位置中的JRE的三个选项,参考文献3中有详细解释。
后续是设置项目的依赖项及源文件的信息,这地方不是太清楚怎么设置,所以就直接点的Finish按钮。
点击Finish按钮后,弹出个窗口询问是否创建module-info.java文件,不太清楚该文件有什么用,于是就点击了Create按钮。
此时,项目成功创建,并且在src文件夹下自动创建了module-info.java文件,如下图所示,里面就一句代码,不过不清楚是什么意思。
暂不理会module-info.java文件,在src文件夹上点右键,新建一个HelloWorld类。
在新建类窗口中设置类名、包名,设置自动在类中增加main函数。这地方的包名和C#中的命名空间意义相同,不一样的地方是如果是多级的包名,eclipse中会一级一级的创建文件夹,并将新建的类文件放在最深一级的文件夹里面,而VS中主要是在类文件中指定命名空间,不会创建多级文件夹。
类创建好之后,Eclipse中自动打开新建的类,如下图所示,类中已经包含了main函数,只需要在里面敲一句打印Hello World的代码即可。这里有点不太习惯的是花括号,一开始左花括号没有独占一行,都是和上一行代码在同一行,看的不是很习惯,就手动敲回车把左花括号单独一行。第二节会介绍如何设置代码格式,让新建的类中的括号等内容符合个人编码习惯。
代码写好,后面就是运行程序,点击下图圈红的图标,运行代码。
第一次运行时没有成功,在下面的Console窗口中报错:Module My1stJavaProgram not found。一开始感觉莫名其妙,后面想起来在module-info.java文件中那句代码好像就是定义了Module My1stJavaProgram,于是将module-info.java文件删掉,再运行程序就正常了。
修改代码括号格式
第一节介绍了不太习惯Eclipse默认的代码风格,目前主要是觉得花括号应该单独成行,其它的方面暂时还没有发现(因为就写了几行代码)。参考文件4中介绍了如何修改代码格式,本节记录如何在Eclipse中改成习惯的方式的。
在Eclipse->Window菜单中点击Preferences菜单,在弹出的窗口左侧树中找到Java->Code Style->Formatter。
点击New按钮,在弹出的窗口中设置新的格式配置的名称,然后点击OK。
然后在弹出的详细配置窗口中找到Brace positions节点,展开该节点后,它下面的子节点是不同类型的括号的使用方式的设置,这些默认都是same line。在这里,将 Array initializer节点以外的节点都设置为New line,然后点击OK。该窗口右侧是个预览界面,左侧的设置发生变更,预览会及时更新,可以看看不同设置对应的效果是什么样。
再次新建一个类,此时自动创建的代码中括号就变成了单独一行。
如何将项目加到版本管理工具中
本节是记录如何将该项目加入到版本管理工具中。由于电脑上已经安装了Svn服务器,首先先在svn服务器中建立项目文件夹,如下图所示,设置该文件夹的用户访问权限。
然后在Eclipse中的项目上点右键,选择Team->Share Project菜单。
接下来选择svn类型,点击next按钮。
在共享项目窗口中选择“创建新的资源库位置”,然后点击next按钮。
将svn服务器中的HelloWorld文件夹的地址复制到下图的URL位置,然后点击next按钮。
选择默认的“使用项目名称作为文件夹名”,然后点击Finish按钮。
这是会弹出一个窗口,让输入连接svn服务器路径的用户名和密码,输入后点击OK按钮,即在svn中有了空记录(仅有一个项目文件夹),但项目文件还没有上传上去。
在Eclipse中的项目上点右键,此时在team中的子菜单就变得丰富起来,选择其中的提交菜单,然后会弹出一个确认窗口,确认要提交项目中的哪些文件。
点击OK按钮,会将选中的项目文件上传到svn服务器中,如下图所示。
至此,项目中的所有文件都纳入版本管理工具中,后续某一文件发生变化,eclipse中文件的图标会有提示,然后在文件或项目上点右键,用team菜单中的提交按钮提交到svn服务器中即可。
如何增加单元测试
最后一点内容是介绍怎么在项目中加入单元测试。从参考文件5中可以看出,一开始是要在项目中增加junit的依赖项,这一点和C#类似,如果要在C#项目中使用junit,首先也是要添加对junit程序集的引用。先在项目中增加一个操作类MathOperation,里面实现了求和、求差两个静态函数。
然后在项目上点右键,选择Properties菜单,点击属性窗口左侧的Java Build Path节点,在窗口右侧点击Libraries选项卡,然后点击Add Library按钮(这里操作时有点错误,导致后续运行单元测试时一直有问题,具体信息后续说明)。
在添加库文件窗口中选中JUnit,点击下一步后,在下图窗口中选择JUnit的版本,这里选择JUnit4,因为电脑上装的就是这个版本,点击Finish按钮。
然后再Properties窗口的Libraries中就会出现JUnit库了。
在MathOperation类文件上点右键,选择New->Other,在弹出的窗口中选择JUnit->JUnit Test Case,然后点击下一步按钮。
下图界面设置单元测试文件的类名、包名、文件位置等信息,设置完之后,点击下一步按钮。
下面的窗口设置要对MathOperation类中的哪些方法进行单元测试,这里勾选求和、求差函数,然后点击Finish按钮。
Eclipse中自动增加MathOperationTest类,然后类中存在对求和、求差函数的测试函数。
在两个单元测试函数中添加测试代码,一开始在每个测试函数中都写了两个测试,对的错的各有一个。
在单元测试文件上点右键,选择Run as-> JUnit Test,正常情况下,Eclipse会开始执行单元测试代码,并显示测试结果。
但是这里出现了如下报错信息。本节开始时已经对Junit库进行了引用,但是运行单元测试时却报错找不到junit下面的类。通过百度,在参考文献6中找到了问题原因,原来是一开始引用Junit库时将该库放在了ModulePath下面导致的,将该引用删除,重新将该库引用到classpath下,在运行单元测试即变正常,具体的解释可以看参考文献6。
由于两个单元测试函数中包含了失败的测试语句,第一次单元测试运行结果时连个都失败了。
将两个单元测试函数中的验证代码改正确,再次运行单元测试程序,这次全部通过测试。
参考文献
[1]使用Eclipse创建简单的java程序,https://blog.csdn.net/Alexshi5/article/details/78907130
[2]Eclipse 初学者(Hello World!),https://blog.csdn.net/xxxxxm1/article/details/80547052
[3]eclipse中新建Java工程的三个JRE选项区别,https://blog.csdn.net/wdjhzw/article/details/42086615
[4]Eclipse设置代码大括号的格式,https://www.cnblogs.com/wxw310415/p/5540189.html
[5]Eclipse中进行单元测试详解,https://blog.csdn.net/weixin_40814407/article/details/86575946
[6]Junit4测试报错,https://blog.csdn.net/JAck_chen0309/article/details/88659869