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

有引用外部jar包时(J2SE)生成jar文件

 
阅读更多
一.工程没有引用外部jar包时(J2SE)

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

二.工程有引用外部jar包时(J2SE)

第一种方案
当工程引用了其他的外部jar时,由于eclipse不支持同时导出外部jar包的功能,所以比较麻烦一点;具体步骤如下:
1.生成manifest file:
选中工程---->右键,Export...--->Java--->选择JAR file--->next-->选择jar file的路径及名称-->next-->next--- 选择Main class--->finish。此时来到了要选择Main class的窗口,但这里先不选择Main class,选择最上方的Generate the manifest file(生成清单文件), 勾上Save the manifest in the workspace(将清单保存在工作空间中),在Manifest file(清单文件):中输入file的名称,如/testProject/main,(其中testProject为工程名,main为manifest file的名称)点击finish。

生成的jar文件一运行就会产生错误:couldn't find main class

2.回到工程,打开刚刚生成的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包了

3.选中工程--->右键,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位于同一个目录下。

不要选main.mf和manifest文件,在后面的选择existing manifest文件,变写manifest时:

Manifest-Version: 1.0
Main-Class:com.test.GameFrame ; class:后面一定要有且只有1个空格
Class-Path: nimrodlf-1.2.jar liquidlnf.jar ;path后面一定要有且只有1个空格

另外,一定要注意Main-Class,Class-Path等后面会有一个直接的空格,不然会提示格式错误

最后必须有换行,不能有空格.这个也是要注意的. 否则依然提示没有mainclass

jar creation failed

detail:invalid header field

用export runnable jar file时,不需要么Class-Path中引入的jxl.jar要和test.jar位于同一个目录下。比较简单。
4.注意点:
如果想在命令行中运行刚刚生成的jar,命令如下:
C:\Documents and Settings\Administrator\桌面>java -jar test.jar
如果在jar中有一些System.out.prinln语句,运行后想看看打印出的内容,可以用一下命令:
C:\Documents and Settings\Administrator\桌面>java -jar test.jar >log.txt
输出信息会被打印到log.txt中,当然log.txt自动生成,并位于和test.jar一个目录中。
这里也可以新建一个start.bat文件,创建后;右键---编辑,输入:java -jar test.jar >log.txt;以后直接双击start.bat即可运行test.jar啦。
E盘,则你需要导入得包也要放在这个目录里。

第二种方案
将第三方包直接拷贝到jdk得安装目录中的jre/lib/ext/中,这时候我们需要重启一下Eclipse,这样才能将刚才的那个包加载进自动生成的系统库中,这时候按照上面的做法打包出来的jar包

打开刚刚生成jar文件,如果还运行不了,可能是你的机器上同时安装有有JDK和JRE,这是将第三方包直接拷贝到JRE得安装目录中的jre/lib/ext/中。这是因为在Eclipse运行时依赖的是JDK的里面的虚拟机,但是打包好之后运行时依赖的是JRE里的虚拟机;(该文章为我转载的文章,此部分是我自己试验得出的结论)

第三种方案.用Fat jar插件来打包有引用外部jar包的项目(J2SE)

1 如果你在程序开发的时候用到了第三方提供的API或者其它附属资源,在你导出生成jar文件时你必须将第三方的文件一并导出,不然你的程序运行将达不到你想要的结果.

你可以利用Fat jar插件生成jar,Fat jar 的下载地址:http://sourceforge.net/projects/fjep/下载的文件是net.sf.fjep.fatjar_0.0.31.zip,解压缩后你会看到plugins文件夹中的net.sf.fjep.fatjar_0.0.31.jar文件(简称Fat jar).
插件安装:把Fat jar文件拷贝到你的eclipse目录下的plugins中..重新启动你的eclipse平台,然后查看Window---preferences, 弹出的窗口中有Fat jar preferences这一项则说明你已经安装成功了,没有这一项则未安装成功,需要多做如下几步操作:到你的eclipse目录下的 configuration---org.eclipse.update,并删除platform.xml文件,然后重新启动eclipse.查看 Window---preferences,你会发现Fat jar preferences这一项.恭喜你安装成功了2.右击你的项目,选项列表中有Build Fat jar这一项,选择它,点击Browser(Main-Class选择你的主类)---next--- finish(勾选你需要一起打包的资源,默认为全部勾选).瞧,jar文件就生成在你的工程项目中了.运行它,一切顺利.

2.用Fat jar打包:右击你的项目,选项列表中有Build Fat jar这一项,选择它,弹出的窗口你会觉得特别亲切,一目了然使用很方便,点击Browser(Main-Class选择你的主类)---next--- finish(勾选你需要一起打包的资源,默认为全部勾选).瞧,jar文件就生成在你的工程项目中了.运行它,一切顺利.

我的eclipse,把插件复制到plugin下,删除了Platform.xml文件,且启动用eclipse.exe -clean 还是不行,插件安装不了,不知道怎么回事。

分享到:
评论

相关推荐

    解决j2se中导出jar文件不能显示图片问题

    在 J2SE 中,导出 Jar 文件时经常遇到的问题是图片不能正常显示。本文将总结解决此类问题的方法,包括通过使用外部资源文件的方式和内部资源文件的方式解决问题。 一、通过使用外部资源文件的方式解决 这种方法的...

    j2se打包成EXE工具

    当你有一个用Java编写的程序,想要让非开发人员也能在没有安装Java环境的计算机上运行时,通常会将其打包成一个可执行文件(如Windows下的.exe文件)。这是因为.exe文件可以直接在Windows系统上双击运行,无需用户...

    eclipse项目发布

    总结来说,发布 Eclipse 项目涉及导出 JAR 文件,对于引用了外部 JAR 包的情况,需要额外生成并编辑 MANIFEST.MF 文件,以指示 JAR 文件运行时需要的外部依赖。通过这种方式,你可以在不同的环境中运行你的 Java ...

    ZXing资源jar包

    这个资源jar包是ZXing项目的一部分,主要用于在Java环境中集成二维码和条形码处理功能。在你的博客中,你可能详细介绍了如何使用ZXing库来创建、读取和解码这些编码形式。 二维码和条形码在现代生活中广泛应用,...

    QRCode.jar 二维码工具包

    如果你的项目是基于Maven的,你可以将提供的本地Maven仓库文件夹中的依赖信息添加到你的pom.xml文件,这样就可以确保在编译时能正确引用到这个库。如果没有使用Maven,你可以将jar文件复制到项目的lib目录下,并在...

    关于Java的二维码的生成与解析

    在Java项目中,可以直接将这个JAR包作为外部依赖引入,以便使用ZXing的功能。 总结来说,这个压缩包提供了一个使用Java和ZXing库生成和解析二维码的完整示例。开发人员可以通过学习这些代码了解二维码编码解码的...

    java 生成二维码实例

    在Java项目中,可以将`zxing.jar`作为外部依赖,或者如果你使用的是Maven或Gradle,可以通过添加相应的依赖来引入ZXing库。例如,在Maven的`pom.xml`文件中添加: ```xml <groupId>com.google.zxing</groupId>...

    java单机坦克大战图片版

    - 使用JAR文件格式打包项目,生成`TankWar2.9.jar`,用户可以直接运行游戏,无需编译环境。 总结,通过《Java单机坦克大战图片版》,我们可以学习到Java编程的基本概念、GUI编程、多线程编程、文件操作以及游戏...

    java考试重点(1001093449).pdf

    - **功能**: 将多个类文件或其他资源文件打包成一个.jar文件,方便部署和分发。 - **使用**: 使用jar命令创建或处理.jar文件。 **2.3 Classpath设置** - **定义**: 指定Java类库或类文件的搜索路径。 - **命令行...

    飞鸽传书(java版).doc

    这包括编译Java源代码、整理资源文件、生成可执行文件等步骤。为了方便用户安装和使用,还应考虑创建安装程序或可执行jar文件。 #### 四、总结 飞鸽传书(Java版)通过利用Java语言的优势,成功实现了局域网内的...

    新版Android开发教程.rar

    � Google 提供了一套 Java 核心包 (J2SE 5,J2SE 6) 的有限子集,尚不承诺遵守 Java 任何 Java 规范 , 可能会造 成J ava 阵营的进一步分裂。 � 现有应用完善度不太够,需要的开发工作量较大。--------------------...

    【05-面向对象(下)】

    •当使用接口来声明引用类型的变量时,这个引用类型的变量必须引用到其实现类的对象。 •一个类可以实现一个或多个接口,继承使用extends关键字,实现接口则使用implements关键字。 实现接口 •一个类...

    java 课程笔记

    - `lib`存放库文件和JAR包。 - `db`支持数据库操作。 - `src.zip`则包含了Java源代码,便于学习和参考。 10. **Java平台版本**: - J2SE(Java 2 Platform, Standard Edition)是标准版,主要用于桌面应用。 -...

    局域网内即时通信工具的开发.docx

    - `jar`:用于将多个类文件打包成单个文件。 - `javadoc`:根据源代码中的注释自动生成文档。 - `jdb`:Java调试工具,帮助开发者查找和修复代码错误。 - `java`:用于运行编译后的Java程序。 - `appletviewer`...

    (超赞)JAVA精华之--深入JAVA API

    - Java 的 I/O 包提供了丰富的类来处理文件和流,包括基本的字节流、字符流、文件流、缓冲流等。 **1.4 Java中的一些常用词汇** - **术语解释** - 如继承、封装、多态等。 **1.5 J2SE学习中的30个基本概念** -...

    java入门与加深FAQ.doc

    编译成功后会在同一目录下生成`xxx.class`文件。 - **运行**:使用`java xxx`命令运行程序,其中`xxx`是编译后的类名(不包括`.class`后缀)。 ##### 8. “`javac`不是内部或外部命令”错误 - **解决方法**:这是...

    TongWeb6.0应用开发手册.pdf

    - 资源引用允许应用组件引用外部资源,如数据库连接池、消息目的地等。 - 这些引用在部署描述符中声明,并由容器管理和创建实例。 - **支持资源环境引用(resource-env-ref)**: - 资源环境引用类似于资源引用,...

    JavaEE(权威)

    当客户端发送请求时,Web 服务器将请求转发给相应的 Servlet,Servlet 处理请求后生成响应,再通过 Web 服务器返回给客户端。 #### 4.2 简单例子 - **创建 JavaWeb 项目**:在 IDE 中创建新的 Web 项目。 - **配置...

    myEclips入门教程.doc

    - **JDBC驱动程序加入jar包的方法**: - 通过`Project` -> `Build Path` -> `Libraries`添加JDBC驱动程序。 - **获取帮助**: - 通过`Help`菜单获取在线文档或FAQ。 - **切换到MyEclipseDatabaseExplorer透视图**: ...

    software_engineering

    在Java环境中,这通常涉及到构建工具如Maven或Gradle,它们可以帮助我们打包代码、管理依赖并生成可执行的JAR文件。此外,我们还需要考虑软件的持续集成和持续部署(CI/CD),如使用Jenkins自动化构建和部署流程。 ...

Global site tag (gtag.js) - Google Analytics