如何将多个Java源文件打包成jar包

时间:2021-08-18 13:13:12

0.需要特别注意的事情是,用于打包的jdk版本,要与IDE所使用的jdk版本一致,否则会出现UnsupportedClassVersionError unsupported major.minor version 51.0 unable to load class [duplicate]

错误的原因及解决建议方案可参见:

(1)http://*.com/questions/8982730/unsupportedclassversionerror-unsupported-major-minor-version-51-0-unable-to-load

(2)我自己采用的一个更稳妥的方案就是,直接用IDE去打JAR包,教程参见:http://www.cnblogs.com/xdp-gacl/p/4136303.html

-----------------------------------------------分割线下方的是在确保jdk版本一致的情况下使用cmd,命令行打包的方式。------


1.在存放Java源文件的文件夹下对所有源文件进行编译生成 .class 文件

如:f:\JSON-java-master>javac *.java


(注意:多个类互相引用的时候,要一起编译,不然不到 
应该

命令行里输入 

(1)javac   sztz/manage/*.java   sztz/database/DBConnect.java   sztz/man/*.java   sztz/tool/Str.java



 或(2)f:\JSON-java-master>javac *.java
带包名的编译方法:java -d 编译后存放路径(当前路径为“.”) *.java 将自动产生包名所指定的目录


2.对生成的多个.class文件打包成jar包

如:f:\json>jar cvf json.jar *

(注意:

(1) 把零散的.class文件打包为jar:(不是在eclipse里"导出"为jar包)

    cd进入要打成jar包的class文件所在目录:jar cvf [生成jar的名称.jar] [列出class文件]   //若有多个用空格隔开
    例1:操作零散的单个或几个class文件:
cd bin
jar cvf ipaddress.jar com/cn/lbs/IPSeeker.class com/cn/lbs/SplitAddress.class
之后会在bin目录下生成ipaddress.jar,不过这里jar下面没有com.csdn.ipaddress包,因为之前没有创建目录


  (2)  例2:把一个文件夹下面所有的class文件打成jar包
(这里让生成的jar目录下有com.csdn.ipaddress包,于是在总的文件夹ipaddress下新建文件夹嵌套com\csdn\ipaddress\,里面放上需要打包的.class文件)
cd回到总的文件夹ipaddress,
jar cvf ipaddress.jar * 回车


参考资料:


1.java编译运行相关http://blog.sina.com.cn/s/blog_4560e10e0101cthv.html

2.java命令行编译运行、打包jar http://blog.csdn.net/dianacody/article/details/38588459