jar file 和 runnable jar file:
导出jar文件的时候,jar file 仅仅是把.class打包了,所以执行这种jar file需要用 java -cp .;ch04.jar com.thnkjava.ch04, 如果你还应用到另外的lib库,你必须在cp里说明,也就是 java -cp .;ch04.jar;lib01.jar;lib02.jar com.thnkjava.ch04 来执行。事实上可以发现ch04.jar也在cp里面,说明ch04.jar就是lib库,最后的参数指明了要被执行的类名。而runnable jar file是可执行的jar文件,执行这个jar包的时候是不需要指明哪个类的,直接这样执行 java -jar ch04.jar。原因就是jar包中的
MANIFEST.MF
内容不同。 runnable jar包中指明哪个类先执行,所以你可以用 java -jar ch04.jar来执行你想要执行的代码,而不必指明具体哪个类。这个你可以打开 jar包查看
MANIFEST.MF
的区别,一目了然。
以前导的都是jar file,在cmd运行界面一直报空指针的错误。如图:
解决方法:
1.将项目的获取路径方式进行修改:(只要是有关路径的就看看是否需要修改。)
修改为了
2.导出的jar file的jar包,mantfest.mf文件是缺少class-path的第三方jar包的
修改它的配置文件:(当前项目用到了四个jar包。)
注意:lib包要和.jar 的执行文件在一个目录下,lib里面有需要的那四个jar包。而导出的jar包里的lib不再使用。
然后就可以在dos界面运行jar文件 了。
导出的jar file 和runnable jar file:
另外,还需要注意,你工程目录下的其他文件夹需要和你部署的jar包在一个目录下。
下面是实际部署到服务器的截图。
运行jar文件,如果你的日志需要记录在当前目录下。那你需要进入这个文件夹然后再运行jar文件。例如,习惯性这样运行jar文件
那么那些自动生成的文件就会生成在前面目录下面。