嵌入式技术william hill官网
直播中

海同iotek

9年用户 376经验值
擅长:嵌入式技术
私信 关注

关于JAVA不能打包成jar包的问题

前几天在对JAVA文件打包成jar包时,遇到一些问题,至今未能解决,记录下来,还望大家指教。
  在将多个CLASS文件打包成jar包时,比如我要把放在/mysoft/bin目录下的类文件都打包到一个jar包,编写myMANIFEST.MF文件,里面的内容是对Main-Class:的指定,比如我要指定的是MainClass,然后编写的内容是Main-Class: MainClass,并把它放在/mysoft,当前目录也是它,然后运行jar cvfm test.jar myMANIFEST.MF -C bin/ .。但是生成之后的jar包并不能执行。
  然后我打开jar包,发现里面的类文件被放在目录bin/./下,我很奇怪的是生成了一个“.”的目录,不知为何因。而在执行命令时,少了最后的一个点是不能打包的。我修改了mf文件,重新指定为Main-Class:bin/./MainClass,或是作其它的路径修改,就是无法运行。最后只能沮丧地把bin/./的类文件都删去,然后重新把那些类添加到jar包的根目录下,mf文件的主要内容还是一开始的Main-Class:MainClass,这样才能运行。
我不知道是不是自己的操作方法有误。如果不是的话,对jar命令中提供将同一目录下的class文件打包到一个jar包的方法我就感到很纠结了,还不如先把一个类文件打包进去,然后用压缩软件打开,再把其它文件拖进去呢。不然还有什么办法呢?

后来看了黄骈java视频,才知道原来解决上一篇笔记提到的打包问题是这么简单。
首先,在自定义的MF文件里,编写如下内容:Main-Class:MainClass。其中MainClass是你的主类名。
然后将该MF文件与自己编写的所有类都放在同一目录下,比如都放在bin目录中。
假设要将这些类文件打包成可以用jvm运行的jar包,名字为myjar.jar。那么将命令行的路径转到bin下,然后输入以下命令:
jar cvfm mymanifest.mf myjar.jar *.*
看见没有,就是直接用的*.*。就是这么简单,生成的jar包就可以运行了。

更多回帖

发帖
×
20
完善资料,
赚取积分