编译打包部署区别
‘壹’ 我想问下打包解包jar与编译反编译jar意思一样吗
jar其实就是Zip格式的压缩包,打包/解包,其实就是压缩本质上就是压缩与解压缩,包内的文件是Class文件编译/反编译 就不一样了,是把java源文件与Class文件相互转换.
‘贰’ 怎么用命令行编译,打包,运行java
一、编译:从.java生成.class
(1)eclipse编译:
在菜单栏里选择"项目"→"构建"/"自动构建",就会在workspace的项目里的bin目录下自动生成.class文件,不需要手动一个个去编译。
(2)命令行编译:
进入src目录,直接javac com/csdn/javacode/A.java,注意这里一定要写全路径com/csdn/javacode(这里一定是/号而非.号),并且.java文件一定要有后缀名!
这样生成的.class文件和src在同一目录下,就是在哪个目录下手动一个个编译,生成的.class文件就在哪个目录下。
---------------------------------------------
二、运行:从.class生成.exe
命令行运行:
cd进入bin目录(eclipse构建生成的一般都在bin目录下),直接java com.csdn.javacode.EncryptClasses key.data
(运行EncryptClasses.class,输出到key.data文件里)
-----注意.class文件在命令行里不要带后缀名!并且路径要写全,执行时,包名加路径时,一定是点号.而非/号!!!
------------------------------------------------------------
三、打包jar:
把零散的.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:把一个文件夹下面所有的class文件打成jar包
(这里让生成的jar目录下有com.csdn.ipaddress包,于是在总的文件夹ipaddress下新建文件夹嵌套com\csdn\ipaddress\,里面放上需要打包的.class文件)
cd回到总的文件夹ipaddress,
jar cvf ipaddress.jar * 回车