最近学java遇到一个问题:在使用命令行编译jar包的时候 出现了jar包里面的结构是一个电脑的绝对路径(把jar包变成zip格式后看到的)
之所以出现这个问题一个是以为 jar包会自己识别其相对路径,另外一个就是自己太懒了。
解决方法蛮简单的:
1、在terminal中输入cd 到你的package所在的位置,如你的class文件在~/Documents/output/com/test/demo.class
你的package是com.test 你需要先 cd ~/Documents/output
2、输入 jar cf test.jar com/test/demo.class 即可,这时候你能够在~/Documents/output/ 目录底下看到你刚生成的jar包文件
(切记这时不要用鼠标将文件直接拖到命令行,因为拖到命令行的是绝对路径
这时候你的jar包虽然生成好了但是里面的结构是有问题的)
jar命令 会在终端当前所在的目录中寻找相对路径中的文件,所以生成的jar包里面的结构是相对路径的形式 ,
但是如果你的jar包后面跟着一个绝对路径的话它就忽视相对路径了,也就是说你死翘翘了