用Eclipse导出能直接运行的jar包

目录结构如下:

用Eclipse导出能直接运行的jar包

首先右击项目,选择Export

用Eclipse导出能直接运行的jar包

选择java里的jar包,下一步

用Eclipse导出能直接运行的jar包

选择目录结构,去掉.settings目录。(lib目录也可以去掉,后面再说。先选上。)下一步。

用Eclipse导出能直接运行的jar包

这步没什么好说的,直接可以下一步。如果你想把jar包保存在workspace里,勾选下面的选项。下一步。

用Eclipse导出能直接运行的jar包

这步选择Generate the manifest in the workspace,自动生成MANIFEST.MF文件。如果想保存在workspace里面,也可以勾选。我这里勾选了。然后在最下面Main class里,一定要选择程序的入口,即带有main方法的类。

然后就可以直接finish了。

但是直接生成的jar包运行会出错,所以需要我们手动修改一下MANIFEST.MF文件。

将生成的jar包解压,目录结构如下:

用Eclipse导出能直接运行的jar包

MANIFEST.MF文件就在META-INF文件夹内。

打开MANIFEST.MF文件,如下:

用Eclipse导出能直接运行的jar包

我们要自己手动加上一句话:

用Eclipse导出能直接运行的jar包

Class-Path表示要用到的jar包。jar文件直接以空格分开。

注意:

Class-path: 和Main-Class: 冒号后都要有一个空格。

如果要将jar包放在linux系统下运行,这里class-path里的包路径如果有斜杠,必须为左斜杠 / ,否则linux系统无法识别。之前我写的是右斜杠,在linux系统下就运行出错。

然后将文件重新打包成zip,并修改后缀名为jar。

用Eclipse导出能直接运行的jar包

然后就可以在命令行运行了。命令:java -jar client.jar

注意:client.jar需要用到的jar包,之前在MANIFEST.MF文件里写的是在lib目录下,所以此时必须client.jar和lib目录在同一个目录下,lib目录下包含所需的jar包。这样运行时才能找到需要的类库。我这里因为是直接解压的client.jar包,而之前打包时选择了lib目录,所以有lib目录,可以直接运行。实际上,上面图中只要有client.jar和lib目录就能运行成功了。

用Eclipse导出能直接运行的jar包