MyEclipse6Java开发中文教程 -M不产生所有项的清单( manifest)文件 为指定的jar文件产生索引信息 C改变到指定的目录,并且包含下列文件: 如果一个文件名是一个目录,它将被递归处理 清单( manifest)文件名和归档文件名都需要被指定,按'm’和'标志指定的相同顺 示例1:将两个cass文件归档到一个名为 classes. jar的归档文件中 jar cvf classes. jar Foo. class Bar.class 示例2:用一个存在的清单( manifest)文件 manifest将foo/目录下的所有 文件归档到一个名为' classes. jar'的归档文件中 jar cvfm classes. jar mymanifest-C fool 假设你想将上面的 com abc. Main Frame为主程序的一个应用程序打包为一个单独的 JAR文件,那么首先在程序的根目录下建立内容如前所述的清单文件,。文件名为 MANIFESTME,然后在命令行窗口下,转变当前目录为程序根目录,输入下列命令 jar cvfm abcApp jar MANIFEST. MF N ,那么,会使用现有的清单文件创建一个名为 abcApp jar的文件,并将目录下的所有 文件(包括子目录)加入此JAR文件中。 而如果希望使用非JAR工具建立JAR文件,建议使用 WinRAR。首先还是需要 建立一个清单文件(名字必须为 MANIFESTME),向此文件中写入同使用JAR工具时一样 的内容,接着需要建立一个 META-INF子目录,然后将 MANIFESTME放入此目录,接 着就可以保持目录结构将所有这些内容使用 WinRAR压缩为ZP格式的文件,文件名取 为 abcApp」jar即可。如下所示,目录结构为 +-----/META-INF/MANIFESTMF ---com/abc/Main Frame class 选中程序根目录下的各个子目录及根目录下的文件,点击鼠标右键,选择"添加到压缩 包…"命令,然后指定文件名为 abcApp jar,格式为ZP,最后点击"确定"即可完成 个更新JAR文件内容的批处理命令 REM更新JAR文件中的 classes目录(做为根目录更新) jar ufM tree. jar-C \classes\ 打包 classes目录下文件为jar的命令(做为根目录创建) @ECHO Compress classes to a jar file jar cfm librmc. jar MANIFEST.MF-C classes 打包WAR文件 cfM ROOT. war file 1.jsp WEB-INF/ file2. jsp dir3 将当前目录打包为一个zP文件 jar cfM javarmc1_obeta. zip 由于作者的表达力和能力所限,因此这篇讨论的内容有一些不尽如人意的地方。因此您 可以参考 Sun Microsystems的Java教程里面的JAR部分作为补充(英文版),地址: http:/iava.suncom/docs/books/tutorialiarl 最后,我们稍微介绍下如何在Ec|jpse中创建JAR文件。首先当然是打开我们的项目 刘长炯著
MyEclipse 6 Java 开发中文教程 11 刘长炯著 -M 不产生所有项的清单(manifest〕文件 -i 为指定的 jar 文件产生索引信息 -C 改变到指定的目录,并且包含下列文件: 如果一个文件名是一个目录,它将被递归处理。 清单(manifest〕文件名和归档文件名都需要被指定,按'm' 和 'f'标志指定的相同顺 示例 1:将两个 class 文件归档到一个名为 'classes.jar' 的归档文件中: jar cvf classes.jar Foo.class Bar.class 示例 2:用一个存在的清单(manifest〕文件 'mymanifest' 将 foo/ 目录下的所有 文件归档到一个名为 'classes.jar' 的归档文件中: jar cvfm classes.jar mymanifest -C foo/ . 假设你想将上面的 com.abc.MainFrame 为主程序的一个应用程序打包为一个单独的 JAR 文件, 那么首先在程序的根目录下建立内容如前所述的清单文件, 文件名为 MANIFEST.MF, 然后在命令行窗口下, 转变当前目录为程序根目录, 输入下列命令: jar cvfm abcApp.jar MANIFEST.MF *.* , 那么, 会使用现有的清单文件创建一个名为 abcApp.jar 的文件, 并将目录下的所有 文件(包括子目录)加入此 JAR 文件中。 而如果希望使用非 JAR 工具建立 JAR 文件, 建议使用 WinRAR。 首先还是需要 建立一个清单文件(名字必须为 MANIFEST.MF),向此文件中写入同使用 JAR 工具时一样 的内容, 接着需要建立一个 META-INF 子目录, 然后将 MANIFEST.MF 放入此目录, 接 着就可以保持目录结构将所有这些内容使用 WinRAR 压缩为 ZIP 格式的文件, 文件名取 为 abcApp.jar 即可。 如下所示,目录结构为: + | +-----/META-INF/MANIFEST.MF | +----com/abc/MainFrame.class 。 选中程序根目录下的各个子目录及根目录下的文件, 点击鼠标右键, 选择"添加到压缩 包..."命令, 然后指定文件名为 abcApp.jar, 格式为 ZIP, 最后点击"确定"即可完成。 一个更新 JAR 文件内容的批处理命令: REM 更新 JAR 文件中的 classes 目录(做为根目录更新) jar ufM tree.jar -C .\classes\ . 打包 classes 目录下文件为 jar 的命令(做为根目录创建): @ECHO Compress classes to a jar file jar cfm lib/rmc.jar MANIFEST.MF -C classes . 打包 WAR 文件: jar cfM ROOT.war file1.jsp WEB-INF/ file2.jsp dir3/ 将当前目录打包为一个 ZIP 文件: jar cfM javarmc1_0beta.zip . 由于作者的表达力和能力所限,因此这篇讨论的内容有一些不尽如人意的地方。因此您 可以参考 Sun Microsystems 的 Java 教程里面的 JAR 部分作为补充(英文版),地址: http://java.sun.com/docs/books/tutorial/jar/。 最后,我们稍微介绍下如何在 Eclipse 中创建 JAR 文件。首先当然是打开我们的项目
MyEclipse6Java开发中文教程 例如 Helloworld,接着选择菜单File> Export(导出),接着即可打开导出向导对话框,如 图16.5所示。然后点击Next按钮进入第二步。同时在这一页,读者也可以看到 MyEclipse Select Export resources Eto a JAR file on the local file systen Select an export destination: type filter text 色 General +c Database 日JEE EAR file MyEclipse) 冒 AR file0 eClipse) J ,OJAR file Javadoc ②P1 gin Development 色Tean 图165打包为JAR文件向导第一步:选择类型 的对EAR和WAR文件创建的支持,位于J2EE这个目录下。 接着在图166中选择要打包的内容,以及生成的jar文件的存放位置。一般发布的时 候,不要打包根目录下的 classpath,, project这些文件,也不要选中 Export java source files and resources,否则源代码将会被打包,而这是源码放在ja里没有用处的,如果是 外包项目的话,还会因此泄露源程序。点击 Browse按钮可以选择JAR文件的保存位置。 确认后,点击N对按钮进入下一页的设置 刘长炯著
MyEclipse 6 Java 开发中文教程 12 刘长炯著 例如 HelloWorld,接着选择菜单 File > Export(导出),接着即可打开导出向导对话框,如 图 16.5 所示。然后点击 Next 按钮进入第二步。同时在这一页,读者也可以看到 MyEclipse 图 16.5 打包为 JAR 文件向导第一步:选择类型 的对 EAR 和 WAR 文件创建的支持,位于 J2EE 这个目录下。 接着在图 16.6 中选择要打包的内容,以及生成的 jar 文件的存放位置。一般发布的时 候,不要打包根目录下的.classpath,.project 这些文件,也不要选中 Export java source files and resources,否则源代码将会被打包,而这是源码放在 jar 里没有用处的,如果是 外包项目的话,还会因此泄露源程序。点击 Browse 按钮可以选择 JAR 文件的保存位置。 确认后,点击 Next 按钮进入下一页的设置
MyEclipse6Java开发中文教程 JAR File Specification Define which Sources should be exported into the JAR Select th 回1Wor1d ±回sre 口. project 口回 CLASSICCARS.mer 口H1lor1d 口区Ha1l0x1操作教 口ats. jarden M Export generated class files and resources EXport all output folders for checked projects EXport java source files and resources EXport refactorings for checked projects. Select refactorings elect the export de JAR file: E: workspaceitestjar ∽[ Browse. 图166打包jar第二步:选择打包内容和JAR存放路径 接着我们看到的是图167所示的打包jr的第三步,设置一些JAR导出的选项。在这 一步可以选中是否要把这些创建间的相关设置信息保存进一个描述文件中,一般最好保存 下,这样以后重复生成jar文件时就不需要反复的进行选中操作了,这一选项的名称是 Save the description of this JAR in the workspace。另外可以设置的就是是否导出编译 有错误或者警告的那些类( Export class files with compiler errors/warnings)。点击 Browse 按钮可以选择JAR描述信息文件的保存位置,如图中框起来的内容所示。确认无误后,点 击Next按钮进入最后页的设置。 如图168所示的是打包ar的最后一步,导出jar文件的清单文件( manifest)设置 在这一步,可以选择生成清单文件( Generate the manifest file),同时可以选择是否要将其 保存在工作区中( Save the manifest in the workspace),以及重用并将此文件保存在工作 区中( Reuse and save the manifest in the workspace)。也可以选择直接使用工作区中已 经建好的清单文件( Use existing manifest from workspace)。另外还可以选择是否包密封 ( Seal contents),密封JAR文件中的一个包意味着在这个包中定义的所有类都必须在同 个JAR文件中找到。这使包的作者可以增强打包类之间的版本一致性。密封还提供了防 止代码篡改的手段。主类设置决定了此jar是否是可执行的( Main class),再次我们选中了 可执行的主类 Helloworld。一切准备完毕后,点击 Finish按钮即可完成向导并创建JAR文 件 最后我们得到的是一个jar文件,双击此间ar文件可以执行(如果电脑上安装了JRE的 话),当然看不到任何输出,这是因为 Windows下面默认是用 javaw.exe来执行jar的,其 命令为 刘长炯著
MyEclipse 6 Java 开发中文教程 13 刘长炯著 图 16.6 打包 jar 第二步:选择打包内容和 JAR 存放路径 接着我们看到的是图 16.7 所示的打包 jar 的第三步,设置一些 JAR 导出的选项。在这 一步可以选中是否要把这些创建 jar 的相关设置信息保存进一个描述文件中,一般最好保存 一下,这样以后重复生成 jar 文件时就不需要反复的进行选中操作了,这一选项的名称是 Save the description of this JAR in the workspace。另外可以设置的就是是否导出编译 有错误或者警告的那些类(Export class files with compiler errors/warnings)。点击 Browse 按钮可以选择 JAR 描述信息文件的保存位置,如图中框起来的内容所示。确认无误后,点 击 Next 按钮进入最后一页的设置。 如图 16.8 所示的是打包 jar 的最后一步,导出 jar 文件的清单文件(manifest)设置。 在这一步,可以选择生成清单文件(Generate the manifest file),同时可以选择是否要将其 保存在工作区中(Save the manifest in the workspace),以及重用并将此文件保存在工作 区中(Reuse and save the manifest in the workspace)。也可以选择直接使用工作区中已 经建好的清单文件(Use existing manifest from workspace)。另外还可以选择是否包密封 (Seal contents),密封 JAR 文件中的一个包意味着在这个包中定义的所有类都必须在同 一个 JAR 文件中找到。这使包的作者可以增强打包类之间的版本一致性。密封还提供了防 止代码篡改的手段。主类设置决定了此 jar 是否是可执行的(Main class),再次我们选中了 可执行的主类 HelloWorld。一切准备完毕后,点击 Finish 按钮即可完成向导并创建 JAR 文 件。 最后我们得到的是一个 jar 文件,双击此 jar 文件可以执行(如果电脑上安装了 JRE 的 话),当然看不到任何输出,这是因为 Windows 下面默认是用 javaw.exe 来执行 jar 的,其 命令为:
MyEclipse6Java开发中文教程 JAR Packaging Options Define the options for the JAR export. Select options for handling probl M Export class files with compile errors eXport class files with compile warnings Create source folder structure v Build projects if not built automatically sAve the description of this JAR in the workspace Description file:/HelloWorld/artest, jar desc B 图167打包J第三步:保存j的创建文件 (jardesc JAR Manifest Specification CustomIze the manifest file for the jar file Specify the mani fest ⊙ ISave the manifest in the workspace REuse and save the mani fest in the workspace Mani fest file orse OUse existing manifest from workspace Seal contents ○ Seal the AR Details ⊙ Seal some packages Nothing sealed Details. Select the class of the application entry point Main class: HelloWorld 图168打包jar第四步:导出jar文件的清单文件设置 javaw -ar test jal 。为了能看到输出,我们改用下面命令即可: java -ar test. jar 刘长炯著
MyEclipse 6 Java 开发中文教程 14 刘长炯著 图 16.7 打包 jar 第三步:保存 jar 的创建文件(.jardesc) 图 16.8 打包 jar 第四步:导出 jar 文件的清单文件设置 javaw –jar test.jar 。为了能看到输出,我们改用下面命令即可: java –jar test.jar
MyEclipse6Java开发中文教程 。那么得到如下的输出 你好世界! 此jar的文件结构如图16.9所示,其中根目录下放置着所有的类文件,而 META-INF/MANIFEST. MF的文件内容就是我们所说的清单文件了,有一个Main-Cass的 属性,正是它指明了这个jar在是用上述命令时会自动调用的类。另外我们也可以用下面的 方法来执行 java-classpath testjar HelloWorld 。这时候得到的输出内容是相同的,上面的命令将 test. jar作为类路径的一部分加入java命 令执行时候的虚拟机中。 test.jar-IP档案文件,解包大小为876字节 test. jar 名字 O META-INF 查看-夏 .HIFEST.F META-INF Helloworld. class 件①)编辑)查看Q) L YetAnother, class Manifest-ve ersion: 1.0 Main-Class: Helloworld 图169 test jar文件内容 由于EJB的默认打包方式也是jar,那么此时其文件内容如图16.10所示(需要指出的 是目前 Java ee5中已经不需要 META-INE文件夹下的配置文件了)。要发布EJB,简单的 就是将 myejb jar文件放置到指定的目录,就可以了,或者是用散包的方式,将一个目录命 名为 myejb. jar/,下面放入文件内容,也可以发布。当然也有的服务器必须用服务器提供的 管理平台来手工发布,例如 WebLogic服务器 Assembl META-INF All. class files for this module ejb-jar. xml sun -ejb-jar xml MANIFEST.MF 图1610EJB的JAR文件格式 刘长炯著
MyEclipse 6 Java 开发中文教程 15 刘长炯著 。那么得到如下的输出: 你好 世界! 。 此 jar 的文件结构如图 16.9 所示,其中根目录下放置着所有的类文件,而 META-INF/MANIFEST.MF 的文件内容就是我们所说的清单文件了,有一个 Main-Class 的 属性,正是它指明了这个 jar 在是用上述命令时会自动调用的类。另外我们也可以用下面的 方法来执行: java -classpath test.jar HelloWorld 。这时候得到的输出内容是相同的,上面的命令将 test.jar 作为类路径的一部分加入 java 命 令执行时候的虚拟机中。 图 16.9 test.jar 文件内容 由于 EJB 的默认打包方式也是 jar,那么此时其文件内容如图 16.10 所示(需要指出的 是目前 Java EE 5 中已经不需要 META-INF 文件夹下的配置文件了)。要发布 EJB,简单的 就是将 myejb.jar 文件放置到指定的目录,就可以了,或者是用散包的方式,将一个目录命 名为 myejb.jar/,下面放入文件内容,也可以发布。当然也有的服务器必须用服务器提供的 管理平台来手工发布,例如 WebLogic 服务器。 图 16.10 EJB 的 JAR 文件格式