Vi, Java, Ant和Junit的自學報告(studyreport.md)

Vi, Java, Ant和Junit的自學報告(studyreport.md)

Vi

Vi:打開/新建文件, 進入Vi界面:$ vi file

如果該文件存在,則打開文件;否則,新建一個名爲file的文件.
e.g. $ vi HelloWorld.java$ vi main.cpp

Vi: 命令模式(Command mode),輸入模式(Insert mode)和底線命令模式(Last line mode)

命令模式:初次進入vi界面,就是命令模式。此模式下,任何輸入字符都會被識別爲命令。常見命令:

  1. i 切換到輸入模式,以輸入字符。
  2. x 刪除當前光標所在處的字符。
  3. : 切換到底線命令模式,以在最底一行輸入命令。

輸入模式:從命令模式輸入"i"字符,到達輸入模式。此模式下的輸入跟正常的文本輸入基本一致。注意以下兩點:
1. 按insert鍵,會切換光標爲輸入/替換模式,光標將變成豎線/下劃線
2. 按esc鍵,會返回到命令模式。

底線命令模式:從命令模式輸入":"字符,到達底線命令模式。該模式下,常用的命令有:
1. w 保存
2. q 退出
3. wq 保存並退出
【注意:-r 可以強制執行命令】

Java

Java: 從HelloWorld.java開始

下面是HelloWorld.java的內容,程序運行輸出HelloWorld

// 聲明公共類HelloWorld,公共類的名字需要與文件名保持一致
public class HelloWorld {
	// main函數是程序入口,類似於c++的main函數
	public static void main(String[] args) { // 約定俗成的寫法,args是參數
		// 輸出HelloWorld並回車
		System.out.println("HelloWorld!");
	}
}
Java: 從編譯到運行

編譯:javac HelloWorld.java,生成字節碼文件HelloWorld.class
運行:java HelloWorld,運行HelloWorld.class,輸出HelloWorld

[administrator@host-172-18-229-12 ~]$ vi HelloWorld.java
[administrator@host-172-18-229-12 ~]$ javac HelloWorld.java
[administrator@host-172-18-229-12 ~]$ java HelloWorld
HelloWorld!
[administrator@host-172-18-229-12 ~]$ cat HelloWorld.java
public class HelloWorld {
	public static void main(String[] args) {
		System.out.println("HelloWorld!");
	}
}

Ant

Ant: 環境配置(Win10)
  1. 下載apache-ant-1.10.0-bin.tar.gz
  2. 解壓到F:\apache-ant-1.10.0並設置環境變量
變量名
ANT_HOME F:\apache-ant-1.10.0
PATH F:\apache-ant-1.10.0\bin
  1. 運行ant,輸出如下表示成功安裝
> ant
Buildfile: build.xml does not exist!
Build failed
Ant: 自動編譯HelloWorld
  1. 在當前目錄下添加build.xml
<project name="helloworld" default="all" basedir=".">
	<target name="all" depends="init,run,jar" >
	</target>
	<target name="init">
		<property name="dirs.base" value="${basedir}"/>
		<property name="classdir" value="${dirs.base}/classes"/>
		<property name="src" value="${dirs.base}/src"/>
		<property name="lib" value="${dirs.base}/lib"/>
		<property name="outputjar" value="${dirs.base}/lib/HelloWorld.jar"/>
		<mkdir dir="${classdir}"/>
		<mkdir dir="${lib}"/>
	</target>
	
	<target name="jar" depends="init">
		<jar jarfile="${outputjar}" >
			<fileset dir="${classdir}" />
		</jar>
	</target>

	<target name="compile" depends="init">
		<javac debug="true" srcdir="${src}"
		destdir="${classdir}" />
	</target>
	
	<target name="run" depends="compile">
		<java classname="src.HelloWorld" classpath="${classdir}" />
	</target>
	
	<target name="clean" depends="init">
		<delete dir="${classdir}"/>
	</target>
</project>
  1. xml語法類似於html。各個字段解釋如下:
# 設置project屬性:項目名爲helloworld, 默認執行all命令,默認目錄爲當前目錄
<project name="helloworld" default="all" basedir="."></project>
# 添加命令all,該命令依賴init,run,jar這三個命令,表示在執行all之前,執行這三個命令
<target name="all" depends="init,run,jar" ></target>
# 添加命令init,該命令會執行介於<target name="init"></target>之間的語句
<target name="init">
	# 設置一些變量,變量名爲name, 變量值爲value, 引用形式爲${name}
	<property name="dirs.base" value="${basedir}"/>
	<property name="classdir" value="${dirs.base}/classes"/>
	<property name="src" value="${dirs.base}/src"/>
	<property name="lib" value="${dirs.base}/lib"/>
	<property name="outputjar" value="${dirs.base}/lib/HelloWorld.jar"/>
	# 執行mkdir命令創建目錄
	<mkdir dir="${classdir}"/>
	<mkdir dir="${lib}"/>
</target>
# 添加compile命令,依賴於init。即首先執行init,然後執行javac語句,執行編譯
<target name="compile" depends="init">
	<javac debug="true" srcdir="${src}"
	destdir="${classdir}" />
</target>
# 運行前需要編譯
<target name="run" depends="compile">
	# 注意classname是包名.類名的形式
	<java classname="src.HelloWorld" classpath="${classdir}" />
</target>

其它命令類似,此處不再贅述。

JUnit

JUnit: 環境配置
  1. 下載junit-3.8.1.jar
JUnit: 測試HelloWorld
  1. 重寫HelloWorld.java
public class HelloWorld {
	public static String printHelloWorld() {
		String output = "HelloWorld";
		System.out.println(output);
		return output;
	}
}
  1. 編寫測試用例,測試printHelloWorld()的返回值是否爲"HelloWorld"
import junit.framework.TestCase;

public class TestHelloWorld extends TestCase {
	public void testPrintHelloWorld() {
		HelloWorld hello = new HelloWorld();
		String result = hello.printHelloWorld();
		assertEquals("HelloWorld", result);
	}
}
  1. 新建TestAll.java文件,執行測試用例
import junit.framework.TestSuite;
import junit.framework.Test;
import junit.textui.TestRunner;

public class TestAll extends TestSuite {
	public static Test suite() {
		TestSuite suite = new TestSuite("TestSuite Test");
		suite.addTestSuite(TestHelloWorld.class);
		return suite;
	}
	public static void main(String[] args) {
		TestRunner.run(suite());
	}
}
JUnit: 編譯運行測試

javac -classpath="junit-3.8.1.jar" TestAll.java TestHelloWorld.java HelloWorld.java
java -classpath="junit-3.8.1.jar" TestAll
只要不報錯,就代表運行成功。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章