命令行下运行Java程序的方法

这是个简单但容易忽略的问题,新手往往被一些看似不起眼的小坑阻挡而裹足不前——本文旨在以最轻松的氛围讲解如何在命令行界面下运行Java程序,包括使用Jar工具进行打包


写在前面

Java的文件体系

Java的.java源程序(source code)要被编译成.class文件即类文件(class file,全称Java class file),它在平台无关性方面的任务是:为Java程序提供独立于底层主机平台的二进制形式的服务——不管怎么样,它就是一个二进制文件(binary file)

而要和计算机打交道,就是通过二进制文件进行的

另外,如果在IDE中编写Java程序,IDE通常会为开发者提供舒适的开发环境:src文件中存放源程序,而bin文件中存放编译后的类文件

Java的JDK工具包

Sun公司官网下载Java SE版本(标准版Java)的JDK(Java Development Kit),你会得到:1)JRE(Java Runtime Environment),2)Java核心类库,3)Java工具包

其中,Java工具包包括javajavacjavadoc等,都是一些命令行实用工具


执行class文件

通过如下命令行指令先将.java文件编译为.class文件

javac Foo.java

这会得到一个文件名为Foo.class.class文件;接着使用java指令对运行该二进制文件

java Foo.class

举例如下:

1)写一个简单的demo,注意文件名和公共类的类名一致

这里写图片描述

2)javac命令编译该源程序,得到.class文件

这里写图片描述

3)java命令运行该编译后的Java类文件

这里写图片描述

需要注意的是,如果用IDE进行编写(或者对于有着良好习惯的coder),我们编译后的文件通常在包(package)文件夹下面,在cd到工程目录(project direcorry)下后,这时候需要显式写出包名.类文件名的形式,以指定包名(相当于相对路径寻址)


执行jar文件

.jar文件等于.class文件和其它一些程序必须的素材文件之和,比如一个Java工程引用了目录下的一张图片、一段音乐,如果想把它们和代码文件合成为一个入口文件即.jar文件,就要用到jar打包技术

.jar命令行工具同样随JDK一并导入用户所在环境

jar命令的参数有很多

这里写图片描述

从实战、实用角度出发,我们推荐使用如下打包命令

jar cvfm Foo.class

其中m参数指定一个mainfest文件(包括Java class文件的相关信息)

最简单的mainfest文件可以这样写

这里写图片描述

写好了mainfest文件就可以进行打包了

jar cvfm foo.jar mainfest.mf *.class

*.class中星号通配符会匹配当前目下所有的Java类文件(这里只有一个类文件用处不大,仅作为说明)

然后使用java -jar 文件名.jar在终端下运行该.jar文件

这里写图片描述

说明三点:1)最后不要使用open直接打开.jar文件,否则可能会出现下面的情况

这里写图片描述

2)如果使用IDE进行开发,通常它集成了.jar文件打包功能(自己摸索)

3)还是考虑到Java文件体系,如果有包的话,就写出完整包名

猜你喜欢

转载自blog.csdn.net/abc_12366/article/details/80038392