关键词: java javac jar

1. 到现在我才知道.class,.jar到底是个什么情况,以前只是知道名字。

多的先不说,今天学习一下,基本的,如何在linux命令行下,纯文本的方式开发java程序。

先写一个最简单的java程序Test.java:

[/crayon]

这是一个java代码文件,需要先编译成java字节码后方可用java虚拟机执行。

[/crayon]

该命令会在当前文件下生成一个Test.class的文件。

如何执行呢? 通过:

[/crayon]

哪jar是什么东西呢? 我们都知道,随着程序的增大,不可避免的会增加很多文件,这些文件如何组织在一起,相互间的调用,是通过包来实现的,最终把一组文件打包在一起,就是jar包。

首先,Test.java增加一行所属包:

[/crayon]
经过javac编译成Test.class,我们创建一个文件夹hello,并放入Test.class

创建jar包,那这个jar包有什么特性呢,需要一个描述文件,在java里规定为:MANIFEST.MF。
MANIFEST.MF的内容,可以先通过jar cvf hello.jar hello命令,然后进行解压jar -xf hello.jar,会发现之前没有的文件META-INF/MANIFEST.MF,修改MANIFEST.MF在下面增加Main-class: hello.Test,指明main函数所在类:

Manifest-Version: 1.0
Created-By: 1.8.0_65 (Oracle Corporation)
Main-class: hello.Test

然后进行带描述文件的jar包打法:

jar cvfm hello.jar META-INF/MANIFEST.MF hello

生成了hello.jar,执行方法:

java -jar hello.jar 哈哈

系统显示:

Hello world
哈哈