目录

一、linux编译并运行java程序

1.安装和使用nano编辑器

2.nano编辑器的补充说明

3.编译Java文件

4.运行Java类文件

 二、Linux中添加Junit插件并进行单元测试

1.下载jar包

2.创建需要被测试的类

3.创建测试类

4.运行测试

 三、总结


一、linux编译并运行java程序

在本项目第四篇博客中,安装好JDK之后,我们就可以进行Linux中java程序的编译和运行。为便于示范,本文中暂不采取SSH的的方式展示,以Ubuntu的终端来运行和展示。

1.安装和使用nano编辑器

Linux常用命令nano是一个文本编辑器,比vi/vim要简单得多,比较适合Linux初学者使用。

Ubuntu下,使用下面命令进行安装:

apt-get -y install nano

安装完毕后,使用终端打开编辑器,记得文件名后跟.java字样才是java文件:

nano [文件名]

如果是该文件夹下的文件不存在,会自动创建一个新文件并打开;如果存在,则打开原来的文件。接下来可以在nano中编辑java文件,例子如下:

cpu java linux 如何 线程 调度 linux调试java_linux

2.nano编辑器的补充说明

  • 在上图中我们可以看到,操作有”^+字母“的指示,其实就是Ctrl+字母的操作。
  • 保存:Ctrl+O,按下Ctrl+O,会提示你是否保存文件。
  • 退出:Ctrl+X,如果文件没有进行修改,按下

Ctrl+X

  • ,会自动退出。如果文件已经修改,按下

Ctrl+X

  • ,会提示你是否保存文件,按下回车即可保存。

3.编译Java文件

保存文件并退出后,使用终端进行编译:

javac 文件名
如:javac HelloWorld.java

如果没有错误,上面的命令不会产生输出。当你编译 Java 程序时,它会生成一个 .class 文件,文件名是你在程序中使用的类。

cpu java linux 如何 线程 调度 linux调试java_运维_02

4.运行Java类文件

你需要运行上一条命令生成的类文件,但不需要在这里指定类的扩展名,只需要类的名称。而这一次,你使用 java 命令,而不是 javac

java HelloWorld

最终得到输出结果:

cpu java linux 如何 线程 调度 linux调试java_运维_03

 二、Linux中添加Junit插件并进行单元测试

众所不周知,JUnit单元测试框架由Erich Gamma和Kent Beck编写的一个回归测试框架(Regresion Testing Framework),主要用于Java语言程序的单元测试,目前使用的主流版本是JUnit4以上版本。在idea中,我们可以通过几个简单操作添加JUnit的插件,但是在Ubuntu中使用需要下载jar包。

下面以一个测试例子来进行单元测试的操作解说,自己操作时需要替换相应命令行的文件名。

1.下载jar包

需要下载junit-4.12.jar和hamcrest-core-1.3.jar两个jar包,建一个demo文件夹,并把两个jar包放进去。以后编写代码也是在这个文件夹下。

2.创建需要被测试的类

创建JUnitTest.java文件,并写入以下代码:

public class JUnitTest {
    public int add(int operator1,int operator2){
        return operator1+operator2;
    }
}

在这其中,需要测试的方法就是add方法,传入两个操作数,返回他们的和。

保存退出后,使用终端编译这个类:

javac JUnitTest.java

3.创建测试类

创建JUnitTestTest.java文件,并写入以下代码:

import static org.junit.Assert.*;
import org.junit.Test;
public class JUnitTestTest {
    JUnitTest j=new JUnitTest();

    @org.junit.Before
    public void setUp() throws Exception {
        System.out.println("测试开始");
    }

    @org.junit.After
    public void tearDown() throws Exception {
        System.out.println("测试结束");
    }

    @org.junit.Test
    public void add() {
        assertEquals(5,j.add(2,3));
    }
}

代码中需要注意和补充的地方:

  • 我们使用语句import了Asert断言和Test文件,这来源于刚才下载的jar包,因此等会的命令需要进行jar包与该文件的一个合并处理。
  • @Test注解:注解在需要测试的方法上。该注解有几个,运行该测试类的时候就测试几个方法。
  • @Before注解:在需要测试的方法之前运行,在这里只是输出”测试开始“字样。需要测试的方法有多少个,该方法就会被调用多少次。
  • @After注解:在需要测试的方法之后与逆行,在这里知识输出”测试结束“字样。需要测试的方法有多少个,该方法就会被调用多少次。
  • asserEquals(Object o,Object o)方法:用来检测前后是否相等。在这里我们验证的时2+3这个方程式,如果等于5(预期结果)则不报错,如果结果不等于5则会报错。
  • JUnit的很多注解和方法在这里无法一一讲到,但是之后实验的测试用例中会使用。

保存退出后,使用终端编译这个类:

javac -cp .:junit-4.12.jar:hamcrest-core-1.3.jar JUnitTestTest.java

4.运行测试

在命令行中运行测试。

在Ubuntu或MacOS上,执行下面的命令:

java -cp .:junit-4.12.jar:hamcrest-core-1.3.jar org.junit.runner.JUnitCore JUnitTestTest

测试结果:

cpu java linux 如何 线程 调度 linux调试java_Test_04

 结果中可以看到使用的JUnit插件的版本号,还有测试开始和结束的字样,以及测试消耗的时间。

  如果测试不通过会报如下错,即断言中错误:

cpu java linux 如何 线程 调度 linux调试java_服务器_05

 三、总结

JUnit的使用方便我们进行实验的单元测试,之后会将其应用于所有的实验的测试。