纯手工打jar 包

jar 命令

jar 是一个jar.exe可执行命令,即可以生成jar文件,也可以生成war文件

 

使用示例:jar -cvf ../xxx.jar * 

-c   create,创建新的归档文档

-v   view,在标准输出中生成详细输出

-f    file,指定归档文件名

 

xxx.jar 是指定的jar文件名 

* 把当前目录下所有的文件及其子目录下所有的文件打进jar包 

 

另外,如果要创建可执行的jar文件,可以使用 -m 来指定MANIFEST.MF文件


打 jar 包

1、在cmd窗口切换到最上层包目录的父目录

  比如,在桌面有一个项目文件夹Hello,打开它,看到最上层包名com,就在这个地址栏输入cmd

cmd打包jar java 命令打jar包_批处理文件

2、打jar包输入:

    jar -cvf ../xxx.jar * (不输入v也可以)

   打war包输入:

    jar cvf ../xxx.war *

3、在相应目录下可以看到jar或war文件已经生成。


运行 jar 包

jar包打好后,设置classPath的为xxx\yyy.jar,然后在命令行的任何路径都可以执行java 命令运行它,前提条件是jar 包里有main方法。

例如java com.xxx.Zzz。打包和不打包一样,访问某个class 文件的方法都一样。

这样运行的方式,前提是必须先把jar文件的保存路径设置为ClassPath。下面介绍一种不需要设置ClassPath,打包后可直接运行的打包方式。


创建可执行的jar文件

1、在IDE里打包一个 jar 项目

2、到 target 目录下复制出jar包,可以把这个 jar 包的名字修改

3、解压,打开 META-INF/MANIFEST.MF(如果没有,自己创建一个META-INF文件夹,创建一个MANIFEST.MF的文件),在最后一行添加内容如下:

  Main-Class: com.test.HelloWorld(类的全路径名,后面不要以.class结尾)

注意:

  (1)Class:后面,也就是冒号后面要添加一个空格,否则会打包时会出现异常 Java.io.IOException: invalid header field

  (2)行末要添加一个回车,否则我们输入的这一行不能打包进去

4、在cmd窗口切换到项目目录,执行命令:

  jar cvfm ../Hello.jar META-INF/MANIFEST.MF *

  f 对应 Hello.jar,Hello.jar 可以自定义名称

  m 对应 META-INF/MANIFEST.MF

  * 表示打包当前目录里所有的文件,及子目录里的文件

5、在当前目录执行命令运行:

  java -jar Hello.jar


批处理文件运行

上面两种方式都是在命令行方式运行jar文件,还可以使用批处理文件的方式运行。

批处理文件实际上就是把在命令行输入的命令提前写到一个文件里,运行时双击这个批处理文件就可以执行了。  

批处理文件名以.bat结尾

内容示例如下:

@echo off
cd/d %~dp0
java -jar Hello.jar
echo "OK"
pause

第一行和最后一行是固定格式,作用是——双击批处理文件后,弹出的命令行窗口不自动关闭,等我们按任意键后才关闭;

第二行,是切换为当前目录,%~dp0 代表当前目录

第三行,是标准输出字符串“OK"。