java问题
如何把自己写的类打包成jar文件?导入新的工程使用?
追问:怎么通过命令来打???能详细点嘛~~~初学者
如何把自己写的类打包成jar文件?导入新的工程使用?
追问:怎么通过命令来打???能详细点嘛~~~初学者
答案:1 JAR文件是什么?JAR文件是Java的一种文档格式,它以流行的 ZIP 文件格式为基础,用于将多个java文件聚集为一个文件。与ZIP文件不同的是,JAR文件不仅用于压缩和发布,而且还用于部署和封装库、组件和插件程序。
JAR文件包含了一个META-INF/MANIFEST.MF文件,这个文件是在生成JAR文件的时候自动创建的。它用于存储包和扩展的配置数据,如安全性和版本信息。Java 2平台识别并解释META-INF目录中的下述文件和目录,以便配置应用程序、扩展和类装载器。MANIFEST.MF文件定义了与扩展和包相关的数据,用来指示工具如何处理特定的JAR。
2 jar命令详解
jar命令的使用格式如下:
jar {ctxu}[vfm0M] [jar-文件] [manifest-文件] [-C 目录]文件名...
其中{ctxu}是jar命令的子命令,每次jar命令只能包含ctxu中的一个,它们分别表示:
-c 创建新的JAR文件包
-t 列出JAR文件包的内容列表
-x 展开JAR文件包的指定文件或者所有文件
-u 更新已存在的JAR文件包(添加文件到JAR文件包中)
[vfm0M] 中的选项可以任选,也可以不选,它们是jar命令的选项参数
-v 生成详细报告并打印到标准输出
-f 指定JAR文件名,通常这个参数是必须的
-m 指定需要包含的MANIFEST清单文件
-0 只存储,不压缩,这样产生的JAR文件包会比不用该参数产生的体积大,但速度更快
-M 不产生所有项的清单(MANIFEST)文件,此参数会忽略-m参数
[jar-文件] 即需要生成、查看、更新或者解开的JAR文件包,它是-f参数的附属参数
[manifest-文件] 即MANIFEST清单文件,它是-m参数的附属参数
[-C 目录] 表示转到指定目录下去执行这个jar命令的操作。它相当于先使用cd命令转该目录下再执行不带-C参数的jar命令,它只能在创建和更新JAR文件包的时候可用
文件名...指定一个文件/目录列表,这些文件/目录就是要添加到JAR文件包中的文件/目录。如果指定了目录,那么jar命令打包时会自动把该目录中的所有文件和子目录放入包中3 jar命令的使用举例
将java文件的源程序(一个或多个)存放在同一目录下如c:\exe,先分别编译java源文件,生成相应的字节码(.class)文件。假如源文件名为hello.java,打包后的jar文件名为hellojar.jar,在Windows系统的命令窗口执行以下几条常用的命令。
3.1 创建jar文件
>jar cvf hellojar.jar hello.class
(如果源程序有多个源文件时用:jar cvf hellojar.jar *.class)
命令执行后提示:
标明清单(manifest)
增加:hello.class(读入= 414)(写出= 279)(压缩了32%)
在当前目录下就生成了一个hellojar.jar文件。3.2 释放jar文档的内容
>jar xvf hellojar.jar
命令执行后提示:
创建:META-INF/
展开:META-INF/MANIFEST.MF
展开:hello.class
java实用程序自动地创建了一个META-INF的子目录,以便保留文档的文件结构。该子目录下有一个名为MANIFEST.MF的文件,它是一个文本文件,可以用任何编辑器查看MANIFEST.MF的文件的内容。
Manifest-Version:1.0
Created-By:1.4.2_07(Sun Microsystems Inc.)3.3 创建可执行的JAR文件
以上只是创建了一个jar文件,是属于不可执行的jar文件。要创建可执行的JAR文件,需要修改MANIFEST.MF文件。可执行的JAR文件包和不可执行的JAR文件包都包含MANIFEST。关键在于可执行JAR文件中的MANIFEST.MF中对Main-Class项作了设置。
MANIFEST.MF中Main-Class的书写格式为:
Main-Class:可执行主类全名(包含包名)
如:Main-Class:hello<回车>
Main-Class指定的类,必须是完整的、包含包路径的类名,它是一个入口类。
编辑完MANIFEST.MF文件后,可以用以下命令创建可执行的jar文件,
>jar cvfm hellojar.jar MANIFEST.MF *.class
注意:hellojar.jar和MANIFEST.MF两个文件,分别是对应的参数f和m。3.4 更新文档
>jar uvf hellojar.jar *.class
如果更改了存储在文档中的一个文件,可直接更新jar文档而不必重新建立一个新的文档。3.5 运行可执行的jar文件
>java -jar hellojar.jar
4 小结
java程序不像其他程序设计语言编写的程序,可直接生成可执行文件.exe,它要么在JDK环境下或其他集成环境下运行;要么利用JDK所提供的jar命令,对源文件进行打包压缩,也可以通过鼠标双击来执行jar文件。
eclipse里有打jar包的如果你使用的是eclipse或者其他的开发工具,上面都有现在的!
如果是用记事本或写字板写的,可以通过命令来打.
利用Java里的命令jar.exe来打包,你利用sdk(例如eclipse这样的开发软件)软件来打包,里面有的会要求你选择使用命令的,那你就选jdk里面的jar。exe,再根据步骤来就行了