Vi,Java,Ant和Junit的自学报告

Vi/Vim

  • 简介
    Vi是Linux系统自带的命令行文本编辑器,而Vim是从Vi发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。

  • 安装环境

    sudo apt-get install vim
    
  • Vim的使用
    Vim分为三种模式,分别是命令模式(Command mode),输入模式(Insert mode)和底线命令模式(Last line mode)。

    1. 命令模式
      一旦启动Vim,首先进入命令模式。
      在这里插入图片描述

      此状态下敲击键盘动作会被Vim识别为命令,而非输入字符。比如我们此时按下i,并不会输入一个字符,i被当作了一个命令。

      常用的几个命令:
      a) i 切换到输入模式,以输入字符。
      b) x 删除当前光标所在处的字符。
      c) : 切换到底线命令模式,在最底一行输入命令。

    2. 输入模式
      进入输入模式,就可以进行正常的文本编辑。
      在这里插入图片描述

    3. 底线命令模式
      底线命令模式可以输入单个或多个字符的命令,可用的命令非常多。基本的命令有:
      a) q 退出程序
      b) w 保存文件
      在这里插入图片描述

  • 总结
    在这里插入图片描述

  • 参考资料

Java

  • 简介
    Java是一门面向对象的高级程序设计语言,其功能强大且简单易用。

  • 安装环境

    sudo apt-get install default-jre
    sudo apt-get install default-jdk
    

    验证

    java -version
    javac -version
    
  • HelloWorld的编译运行
    HelloWorld.java:

    public class HelloWorld {
        public static void main(String[] args) {
            System.out.println("Hello World!");
        }
    }
    

    编译运行:

    javac HelloWorld.java
    java HelloWorld
    

    运行结果:
    在这里插入图片描述

Ant

  • 简介
    Ant 是一个 Apache 基金会下的跨平台的构件工具,它可以实现项目的自动构建和部署等功能。

  • 安装环境

    sudo apt install ant
    

    验证

    ant -version
    
  • 使用
    新建文件 build.xml:

    <?xml version="1.0"?>
    <project name="helloWorld">
    	<target name="sayHelloWorld">
    		<echo message="Hello,Amigo"/>
    	</target>
    </project>
    

    输入命令行:

    ant sayHelloWorld
    

    运行结果:
    在这里插入图片描述

  • Ant的关键元素

  1. project
    project 元素是 Ant 构件文件的根元素,Ant 构件文件至少应该包含一个 project 元素,否则会发生错误。在每个 project 元素下,可包含多个 target 元素。

    a) name 属性
    用于指定 project 元素的名称。

    b) default 属性
    用于指定 project 默认执行时所执行的 target 的名称。

    c) basedir 属性
    用于指定基路径的位置。该属性没有指定时,使用 Ant 的构件文件的附目录作为基准目录。

    举例:

    <?xml version="1.0"?>
    <project name="projectStudy" default="sayBaseDir" basedir="">
    	 <target name="sayBaseDir">
    		<echo message="The base dir is: ${basedir}"/>
    	</target>
    </project>
    

    在这里插入图片描述

    在这里插入图片描述

  2. target
    它为 Ant 的基本执行单元,它可以包含一个或多个具体的任务。多个 target 可以存在相互依赖关系。

    a) name 属性
    指定 target 元素的名称,这个属性在一个 project 元素中是唯一的。我们可以通过指定 target 元素的名称来指定某个 target。

    b) depends 属性
    用于描述 target 之间的依赖关系,若与多个 target 存在依赖关系时,需要以“,”间隔。Ant 会依照 depends 属性中 target 出现的顺序依次执行每个target。被依赖的 target 会先执行。

    c) if 属性
    用于验证指定的属性是否存在,若不存在,所在 target 将不会被执行。

    d) unless 属性
    该属性的功能与 if 属性的功能正好相反,它也用于验证指定的属性是否存在,若不存在,所在 target 将会被执行。

    e) description 属性
    该属性是关于 target 功能的简短描述和说明。

    举例:

    <?xml version="1.0"?>
    <project name="targetStudy">
    	<target name="targetA" if="ant.java.version"> 
    		<echo message="Java Version: ${ant.java.version}"/>
    	</target>
    
    	<target name="targetB" depends="targetA" unless="amigo">
    		<description> 
    			a depend example!
    		</description> 
    		<echo message="The base dir is: ${basedir}"/>
    	</target>
    </project>
    

    在这里插入图片描述

  3. property
    该元素可看作参量或者参数的定义,project 的属性可以通过 property 元素来设定,也可在 Ant 之外设定。

    举例:

    <?xml version="1.0"?>
    <project name="propertyStudy" default="example">
    <property name="name" value="amigo"/>
    <property name="age" value="25"/>
    	<target name="example">
    		<echo message="name: ${name}, age: ${age}"/>
    	</target>
    </project>
    

    在这里插入图片描述

  • 常用任务
    在 Ant 工具中每一个任务封装了具体要执行的功能,是 Ant 工具的基本执行单位。
  1. copy 任务
    该任务主要用来对文件和目录的复制功能。

    Eg1.复制单个文件:<copy file="file.txt" tofile="copy.txt"/>
    Eg2.对文件目录进行复制:
    	<copy todir="../newdir/dest_dir">
    		<fileset dir="src_dir"/>
    	</copy>
    Eg3. 将文件复制到另外的目录:<copy file="file.txt" todir="../other/dir"/>
    
  2. delete 任务
    对文件或目录进行删除。

    Eg1. 删除某个文件:<delete file="photo/amigo.jpg"/>
    Eg2. 删除某个目录:<delete dir="photo"/>
    Eg3. 删除所有的备份目录或空目录:
    	<delete includeEmptyDirs="true">
    		<fileset dir="." includes="**/*.bak"/>
    	</delete>
    
  3. mkdir 任务
    创建目录。

    eg:<mkdir dir="build"/>
    
  4. move 任务
    移动文件或目录。

    Eg1. 移动单个文件:<move file="fromfile" tofile=”tofile”/>
    Eg2. 移动单个文件到另一个目录:<move file="fromfile" todir=”movedir”/>
    Eg3. 移动某个目录到另一个目录:
    	<move todir="newdir">
    		<fileset dir="olddir"/>
    	</move>
    
  5. echo 任务
    该任务的作用是根据日志或监控器的级别输出信息。它包括 message、file、append 和 level 四个属性。

    eg. <echo message="Hello,Amigo" file="logs/system.log" append="true">
    
  • 利用 Ant 构建和部署 java 工程
    Ant 可以代替使用 javac、java 和 jar 等命令来执行 java 操作,从而达到轻松的构建和部署 Java 工程的目的。
  1. 利用 Ant 的 javac 任务来编译 java 程序
    先建立以下目录:

    |__antstudy
       |__src
          |__HelloWorld.java
       |__build.xml
    

    HelloWorld.java:

    public class HelloWorld {
    	public static void main(String[] args) {
    		System.out.println("Hello,Amigo");
    	} 
    }
    

    build.xml

    <?xml version="1.0"?>
    <project name="javacTest" default="compile" basedir="">
    	<target name="clean">
    		<delete dir="build"/>
    	</target>
    
    	<target name="compile" depends="clean">
    		<mkdir dir="build/classes"/>
    		<javac srcdir="src" destdir="build/classes"/>
    	</target>
    </project>
    

    运行build.xml:
    在这里插入图片描述

    此时文件目录结构如下:

    |__antstudy
       |__build
          |__classes
             |__HelloWorld.class
       |__src
          |__HelloWorld.java
       |__build.xml
    
  2. 使用 Ant 的 java 任务运行 Java 程序
    修改build.xml:

    <?xml version="1.0"?>
    <project name="javaTest" default="jar" basedir=".">
    	<target name="clean">
    		<delete dir="build"/>
    	</target> 
    
    	<target name="compile" depends="clean">
    		<mkdir dir="build/classes"/>
    		<javac srcdir="src" destdir="build/classes"/>
    	</target> 
    
    	<target name="run" depends="compile">
    		<java classname="HelloWorld">
    			<classpath> 
    				<pathelement path="build/classes"/>
    			</classpath>
    		</java>
    	</target>
    </project>
    

    运行build.xml:
    在这里插入图片描述

  3. 使用 Ant 的 jar 任务生成 jar 文件
    修改build.xml:

    <?xml version="1.0"?>
    <project name="javaTest" default="jar" basedir=".">
    	<target name="clean">
    		<delete dir="build"/>
    	</target> 
    
    	<target name="compile" depends="clean">
    		<mkdir dir="build/classes"/>
    		<javac srcdir="src" destdir="build/classes"/>
    	</target> 
    
    	<target name="run" depends="compile">
    		<java classname="HelloWorld">
    			<classpath> 
    				<pathelement path="build/classes"/>
    			</classpath>
    		</java>
    	</target>
    
    	<target name="jar" depends="run">
    		<jar destfile="helloworld.jar" basedir="build/classes">
    			<manifest> 
    				<attribute name="Main-class" value="HelloWorld"/>
    			</manifest>
    		</jar>
    	</target>
    </project>
    

    运行build.xml:
    在这里插入图片描述

  • 总结
    Ant 在自动构建和部署 Java 程序方面方便易用,而且非常灵活,是我们 Java 开发者的绝佳帮手。

Junit

  • 简介
    JUnit 是一个 Java 语言的单元测试框架,JUnit4 是 JUnit 框架有史以来的最大改进,其主要目标便是利用 Java5 的 Annotation 特性简化测试用例的编写。

  • 安装环境
    从 Junit 官方下载网站 http://www.junit.org/ 上下载 junit-4.9.zip,把下载到的文件解压缩出来。(路径最好不要有中文字符)。

    验证

  • 元数据
    a) @Before:使用了该元数据的方法在每个测试方法执行之前都要执行一次。

    b) @After:使用了该元数据的方法在每个测试方法执行之后要执行一次。

    c) @Test(expected=*.class):expected 属性的值是一个异常的类型,通过它来测试错误。

    d) @Test(timeout=xxx):该元数据传入了一个时间(毫秒)给测试方法,如果测试方法在制定的时间之内没有运行完,则测试也失败。

    e) @ignore:该元数据标记的测试方法在测试中会被忽略。当测试的方法还没有实现,或者测试的方法已经过时,或者在某种条件下才能测试该方法(比如需要一个数据库联接,而在本地测试的时候,数据库并没有连接),那么使用该标签来标示这个方法。同时,你可以为该标签传递一个 String 的参数,来表明为什么会忽略这个测试方法。比如:@lgnore(―该方法还没有实现‖),在执行的时候,仅会报告该方法没有实现,而不会运行测试方法。

  • 测试例子
    编写一个类和一个测试类:

    ----HelloWorld.java------
    import java.util.*;
    public class HelloWorld {
    	String str;
    	public void hello()
    	{
    		str = "Hello World!"; 
    	}
    	public String getStr()
    	{
    	 	return str;
    	} 
    }
    
    -----HelloWorldTest.java----------
    import static org.junit.Assert.*;
    import org.junit.Test;
    public class HelloWorldTest {
    	public HelloWorld helloworld = new HelloWorld();
    	@Test
    	public void testHello() {
    		helloworld.hello();
    		assertEquals("Hello World!", helloworld.getStr()); 
    	} 
    }
    

    测试:

    javac -classpath .:junit-4.9.jar HelloWorldTest.java
    java -classpath .:junit-4.9.jar -ea org.junit.runner.JUnitCore HelloWorldTest
    

    在这里插入图片描述

  • 总结
    实训给的Junit教程文档中有很多符号错误,比如两个命令中的“-”都写错了,代码中也出现了大小写错误,希望后面的同学注意排坑,免得浪费时间。

总结

通过对Vi/Vim、Java、Ant、Junit的学习,初步掌握了在Linux上编写、编译、运行以及测试Java程序的技能,接下来需要通过实践来巩固这些知识。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值