`
langgufu
  • 浏览: 2307515 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Eclipse导出jar文件的两种方式以及MANIFEST.MF的用途

阅读更多

具体做法如下:
方法一:(工程没有引用外部jar包时,直接导出)

选中工程---->右键,Export...--->Java--->JAR file--->next-->选择jar file的路径及名称-->next-->next---> 选择main class--->finish.

方法2:

当工程引用了其他的外部jar时,由于eclipse不支持同时导出外部jar包的功能,所以比较麻烦一点;具体步骤如下:
生成manifest file:选中工程--->右键,Export--->Java--->JAR file--->选择jar file的路径及名称--->next--->next--->next;
此时来到了方法1中要选择main class的窗口,但这里先不选择main class,选择最上方的Generate the manifest file, 勾上Save the manifest in the workspace,在Manifest file:中输入file的名称,如/testProject/main,(其中testProject为工程名,main为manifest file的名称)点击finish,回到工程,打开刚刚生成的main,在这里要输入如下信息:
Manifest-Version: 1.0
Main-Class: com.pacong.convert.auto.propertes.ConvertAutoProperties
Class-Path: jxl.jar
其中,Manifest-Version: 1.0为刚刚自动生成的manifest版本号;
Main-Class: com.pacong.convert.auto.propertes.ConvertAutoProperties为main class所在类;
Class-Path: jxl.jar为外部jar包名称,这里是告诉导出的jar包,所要用到的外部的jar包的路径及名称。
上面都做完了就可以导出带外部jar包的jar包了,步骤如下:
选中工程--->右键,Export--->Java--->JAR file--->选择jar file的路径及名称--->next--->next--->next,这时又来到了选择main class的窗口,但这里也不选择main class,选择Use existing manifest from workspace,在Manifest file:里选择刚刚生成的main,如:/testProject/main,点击finish,到此就大功告成啦;假设生成的jar包的名称为test.jar,那么Class-Path中引入的jxl.jar要和test.jar位于同一个目录下。

这里还有一点要注意:
如果想在命令行中运行刚刚生成的jar,命令如下:
java -jar test.jar
如果在jar中有一些System.out.prinln语句,运行后想看看打印出的内容,可以用一下命令:
java -jar test.jar >log.txt
输出信息会被打印到log.txt中,当然log.txt自动生成,并位于和test.jar一个目录中。

这里也可以新建一个start.bat文件,创建后;右键---编辑,输入:java -jar test.jar >log.txt;以后直接双击start.bat即可运行test.jar啦。


此部分来自CSDN博客,转载请标明出处:http://blog.csdn.net/kanfeikanfei/archive/2009/03/25/4024304.aspx

补充:
上面第二种方法对于含有较多第三方jar文件就显得不合适,太繁琐。这时可以使用一个打包的插件:fat jar。
附:图解Fat jar的使用

Fat Jar Eclipse Plug-In是一个可以将Eclipse Java Project的所有资源打包进一个可执行jar文件的小工具,可以方便的完成各种打包任务,我们经常会来打jar包,但是eclipse自带的打jar似乎不太够用,Fat Jar是eclipse的一个插件,特别是Fat Jar可以打成可执行Jar包,并且在图片等其他资源、引用外包方面使用起来更方便。
安装方法:
1.      eclipse在线更新方法:
help >software updates >Search for new features to install>new update site>
填写name 和url 
name:Fat Jar
url:http://kurucz-grafika.de/fatjar,这个是FatJarUpdateSite.
2.      eclipse插件安装方法:
下载,地址在http://downloads.sourceforge.net/fjep/net.sf.fjep.fatjar_0.0.27.zip?modtime=1195824818&big_mirror=0,解压后将解压出的plugins中的文件复制到eclipse中的plugins目录下,然后重启eclipse,避免Fat Jar被认不出来,在eclipse启动时使用-clean参数。
使用方法(我用的eclipse是eclipse 3.3.2,Fat Jar是net.sf.fjep.fatjar_0.0.27):

 

Fat Jar 打包插件,可以方便的完成各种打包任务,可以包含外部的包等 。呵呵!很好用...../,关于下载和安装就不说了,都很简单。怎么使用?、一开始我也搞了很久,网上说的都不是很详细,可以打包,但双击却运行不了。现在终于搞定了,就上来说一下。

       开始:在你的工程项目里右键弹出下图:

 

然后Buile Fat Jar出现下图:

 

    

 

再然后就Next了,又出现下图:

 

 

MANIFEST.MF的用途(转载)  

可以用的上的有:

    1. Main-Class 指定程序的入口,这样可以直接用java -jar xxx.jar来运行程序。

    2. Class-Path 指定jar包的依赖关系,class loader会依据这个路径来搜索class。

我平时用mf文件一般说来都是让jar成为可以直接运行这一目的。虽然目的这么简单,但是每次打包还是很容易出现各种各样的问题让人头痛。mf总是没有被应用,或者是出错了。

首先给出一个简单而标准的例子:

Manifest-Version: 1.0
Main-Class: ui.JFrameMain
Class-Path: jtds-1.2.jar c3p0-0.9.1.2.jar 
esri_mo20.jar esri_mo20res.jar jsde83_sdk.jar

解释一下:

Manifest-Version mf文件版本号,这行照抄

Main-Class 包含main函数的类,程序的入口

Class-Path 用到的一些包

分析一下要点:

要点1:每行的“:”(冒号)用来分隔键值对。冒号后边一定要跟一个空格!!!

也就是说务必写为:

Main-Class:(空格)YouClassName

Class-Path:(空格)Class1.Jar

否则JBuilder会报("Manifest.mf": Error reading manifest: java.io.IOException: invalid header field
)这样的错。不再IDE帮助下做的JAR会发现MF没有起到应有的作用。顺便说一下以前我看到JBuilder报另一个个错大概说是什么换行符不对,好像也是由于这个问题引发的。原先总以为是windows里边的回车是由回车,换行2个字符构成而造成的。现在看来好像不是这样,是因为少了冒号后边那个空格。

要点2:Class-Path里边的内容用空格分隔而不是逗号或者分号。(唉。。。我总是下意识的用分号)

也就是说务必写成:

Class-Path:(空格)Class1.jar(空格)Class2.jar(空格)Class3.Jar

要点3:有的文章说MF文件每行不能超过七十多的字符,我的经验是如果在JBuilder里编辑MF超过了也无妨,一般我是尽量一行写完。续行挺麻烦又要以空格开头什么的。我也经常直接用winRar打开jar然后直接编辑里边的mf文件,这是个好方法,很直接了当,缺点就是如果改坏了也不会报错,只是MF有的部分失效了,好像运行时也会说"错误的MF文件版本"。

介绍几个技巧:

技巧1:使用winRar打开jar,双击MF文件,就可以编辑了,编辑完了Ctrl+S保存。特方便。也可以在外边写好一个Manifest.mf,然后直接拖入覆盖以前的。

技巧2:写一个run.bat来运行你的jar。run.bat大体内容如下:

java -jar yours.jar

pause

后边加一个pause就可以让你看到具体哪里出错了,一般来说问题如果出在MF上,那么往往就是哪个包,哪个类没有找到的NoClassDef这种异常。

分享到:
评论

相关推荐

    JavaSE导出jar(两种方法)

    以下是关于"JavaSE导出jar(两种方法)"的知识点详解: ### 方法一:使用Eclipse IDE Eclipse是一款广泛使用的Java集成开发环境,它提供了方便的打包工具。 1. **准备工程**:首先确保你的项目是一个Java Standard ...

    java 导出 jar 文件 执行批处理

    在Java开发中,导出JAR文件是一个常见的需求,特别是在创建可执行的Java应用程序时。`test.jar`可能就是一个这样的可执行JAR文件。 这篇名为“java 导出jar文件 执行批处理”的博文,虽然没有提供具体内容,但我们...

    eclipse生成jar包

    7. 使用压缩工具(如WinRAR或7-Zip)打开新生成的“new.jar”,将之前保存的“META-INF/MANIFEST.MF”文件替换掉“new.jar”中的旧版本。 现在,你已经创建了一个包含所有依赖的JAR包。同样,你可以通过DOS命令行...

    使用Eclipse制作可执行jar文件

    "Eclipse制作可执行jar文件" 使用Eclipse制作可执行jar文件是初学者用户的需求之一。...使用Eclipse制作可执行jar文件需要遵循以上步骤,并且需要注意MANIFEST.MF文件的配置,以确保jar文件的正确执行。

    Java打包成jar文件,以及将jar文件导出为exe文件方法汇总.pdf

    2. 使用`jar cfm jar_file_name.jar MANIFEST.MF *.class`命令,其中`c`表示创建新jar,`f`是jar文件名,`m`是清单文件名,`*.class`表示所有编译后的类文件。 将jar文件转换为exe文件,可以使用exe4j等工具。以下...

    Eclipse插件打包Jar文件fatjar(支持eclipse4.4及以上版本).zip

    总的来说,fatjar工具为Eclipse插件的打包提供了一种便利的方式,使得开发者能够轻松地将插件及其依赖整合到一个可执行的JAR文件中,便于分发和独立运行。理解并熟练掌握fatjar的使用,对于提升Eclipse插件开发的...

    eclipse中Jar 文件的创建与使用

    Jar文件通常包含.class文件、资源文件、元数据(如manifest.mf)和其他辅助文件。它们可以被Java虚拟机(JVM)直接运行,也可以作为库供其他Java项目引用。 **创建Jar文件** 在Eclipse中创建Jar文件分为以下几个...

    Eclipse 项目 打包成 可执行jar 文件

    ### Eclipse 项目打包成可执行JAR文件详解 在Java开发过程中,经常需要将开发完成的应用程序打包成可执行的JAR文件以便于部署和分发。本文将详细介绍如何使用Eclipse IDE将Java项目打包成可执行的JAR文件。 #### ...

    eclipse导出第三方jar包插件fatjar

    - **Manifest**: 可以自定义JAR文件的MANIFEST.MF内容,例如添加版本信息、作者等。 - **Entries**: 这里可以指定要包含的文件和目录,通常会自动包含项目的所有源代码和资源文件。 - **Libraries**: 这是最重要...

    eclipse-项目打包与发行

    本文将围绕“Eclipse项目打包与发行”的核心概念,深入探讨如何通过Eclipse将项目打包成JAR文件,并详细解释关键配置文件`MANIFEST.MF`的作用与设置,以及如何处理特定于Eclipse的SWT/JFace组件,确保跨平台兼容性。...

    Java打包成jar文件,以及将jar文件导出为exe文件方法汇总

    ##### 方法一:使用Eclipse导出jar文件 1. **打开项目**:在Eclipse中打开您希望打包的Java项目。 2. **选择导出选项**:右键点击该项目,在弹出菜单中选择“Export”。 3. **选择JAR file**:在Export窗口中,...

    java的jar文件生成.pdf

    它们通常用后缀`.jar`表示,是一种打包Java应用程序或库文件的标准方式。 ### JAR文件的作用与优势 1. **压缩**:JAR文件将多个文件合并为一个文件,减少了磁盘空间和网络传输时间。 2. **封装**:它能够将应用...

    Java打包成jar文件,以及将jar文件导出为exe文件方法汇总.docx

    - 运行 `jar` 命令,例如:`jar cfm jar_name.jar MANIFEST.MF *.class`。这里的 `c` 表示创建新的 jar,`f` 是 jar 文件名,`m` 是清单文件,`*.class` 是所有类文件。 【将 jar 文件导出为 exe 文件】 为了在...

    Java程序打成Jar包做成EXE安装程序

    可以通过两种方法来获取MANIFEST.MF文件。方法一是直接拷贝其他能运行的JAR文件中的MANIFEST.MF文件并进行修改。方法二是利用IDE工具,如Eclipse,在生成JAR文件时自动生 成MANIFEST.MF文件。 MANIFEST.MF文件的...

    java导出工程形成.jar文件所需工具

    总之,导出包含第三方库的Java工程为`.jar`文件,需要理解`.jar`文件的结构和作用,正确配置构建路径,创建或编辑`MANIFEST.MF`文件,并选择合适的方式处理依赖。随着技术发展,现代构建工具让这个过程变得更加便捷...

    osgi解决不同版本jar包冲突的demo

    OSGi(Open Services Gateway Initiative)是一种模块化系统和Java服务框架,它允许在单个JVM上运行多个版本的相同库或服务,从而解决了不同版本jar包冲突的问题。本示例通过一个名为“myself”的工程,展示了如何...

    用Eclipse将编译后的java字节码打包成JAR文件

    3. **导出JAR文件**:在Eclipse菜单栏中,选择`File -> Export -> Java -> JAR file`。然后点击`Next`按钮,进入导出向导界面。 4. **设置JAR文件选项**:在导出向导中,首先选择你要打包的项目或者类文件。在`...

    用Eclipse制作jar包

    "Package required libraries into generated JAR"则会将依赖的.jar文件打包成单独的文件,然后在MANIFEST.MF中添加引用。 4. **设置清单文件** "Manifest File"部分允许你指定或编辑MANIFEST.MF文件,这是.jar...

Global site tag (gtag.js) - Google Analytics