Eclipse中将Java项目 打包为jar,并且引入第三方jar包 解决办法
- 格式:doc
- 大小:20.00 KB
- 文档页数:2
在Eclipse中把java程序打包成Jar方式一:若是自己的java project中引用了额外的jar包作为资源文件,那么需要自己去概念配置文件MANIFEST.MF,内容例如如下:Manifest-Version:1.0Main-Class: gobang.GobangGameClass-Path:lib\junit.jar lib\log4j-1.2.12.jar lib\mysql-connector-java-3.1.12-bin.jar注:Class-Path中的各个jar文件名称见是不是应该有距离符,那个本人没有验证,因为本人没有效到其他的jar 其中的Class-Path就指定了外来的jar包的位置。
请注意假设咱们的项目打包好以后为project.jar,那么依照上面Class-Path的概念,就应该在project.jar的“同层”目录下成立一个lib文件夹,并将相关的jar包放在里面。
不然会显现Exception in thread “main”ng.NoClassDefFoundError的错误。
下面介绍利用Eclipse制作jar包的进程:1.第一在Eclipse中打开项目,右键点击项目,选择“Export”;2.选择Java/JAR file,Next;3.select the resources to export 中能够选择你想要包括的项目文件夹,一些没必要要的文件夹就无需放进去了,免得增大空间。
在可勾选的文件夹下面有四个选项:(1).表示只导诞生成的.class文件和其他资源文件(2).表示导出选中项目的所有文件夹(3).表示导出的jar包中包括你的源代码,若是不想泄露代码,那么就不要选这项(4).把一些重构的信息文件也包括进去(注:这项不是很清楚!!!)然后在Select the export destination 当选择导出的jar的途径,Next4.上面这一页选择是不是导出那些带有警告warning或错误errors的.class文件,一样就默许,Next5.下一步能够对项目做一些配置(1)Genetate the manifest file 是系统帮咱们自动生成MANIFEST.MF文件,若是你的项目没有引用其他的class-path,那能够选择这一项。
如何实现在Eclipse及MyEclipse开发工具中对应用系统打包为JAR格式文件
1.1.1将应用系统中的各个*.class文件打包为普通的*.jar文件
1、切换到包透视图中
2、选择“Jar文件”项目
3、点击下一步按钮,并输入jar的文件名称和对应的选择项目
4、继续点击下一步按钮
6、点击完成按钮后,将在磁盘中产生出*.jar文件
7、将该*.jar文件引入到Web项目中
1.1.2打包为可以直接执行的Jar程序文件
1、切换到“导航器视图”、并选中项目的根目录
2、选择“导出”菜单
3、在导出对话框中选择“Runnable JAR File”项目,并点击“Next”按钮
4、在下一个对话框中输入“启动main()方法所在的类”(本例为TrainnerLoginSystemWindow.java类)
同时指定导出的JAR文件所在的目录和文件名称(本例为ElfiiClient.jar)
5、点击“Finish”按钮,将开始进行导出和制作JAR文件的过程,最终创建出目标JAR 文件
6、为JAR文件创建一个*.bat文件(本例为ElfiiClient.bat)
java -jar ElfiiClient.jar
7、在Window系统中直接点击ElfiiClient.bat文件将可以直接执行该Jar文件所包含的程序。
java打jar包,引⽤其他.jar⽂件⼤家都知道⼀个java应⽤项⽬可以打包成⼀个jar,当然你必须指定⼀个拥有main函数的main class作为你这个jar包的程序⼊⼝。
具体的⽅法是修改jar包内⽬录META-INF下的MANIFEST.MF⽂件。
⽐如有个叫做test.jar的jar包,⾥⾯有⼀个拥有main函数的main class:test.someClassName我们就只要在MANIFEST.MF⾥⾯添加如下⼀句话:Main-Class: test.someClassName然后我们可以在控制台⾥输⼊java -jar test.jar即可以运⾏这个jar。
但是我们这个项⽬需要引⽤其他第三⽅的jar包,在eclipse⾥⾯以项⽬jar包的形式引⽤了这个叫做some.jar的包,当时放在项⽬的lib⼦⽬录下,最后项⽬打包时把这个some.jar也打进来了,但是⽤java -jar执⾏这个test.jar的时候报找不到Class异常,原因就是jar引⽤不到放在⾃⼰内部的jar包。
那怎么办?运⾏时将其加⼊classpath的⽅式⾏不⾏?就是在运⾏jar的同时加⼊classpath参数:java -classpath some.jar -jar test.jar这种⽅式应该能解决问题吧,试⼀下,还是不⾏。
查了下资料,原来使⽤java -jar 命令运⾏jar包时classpath参数将会失效,所以,这种⽅式也不⾏。
那该怎么引⽤其他的jar包呢,答案还是在这个⽬录META-INF下的MANIFEST.MF⽂件中。
jar包引⽤其他jar包的信息必须在这个⽂件中声明。
我们在MANIFEST.MF中添加如下代码:Class-Path: lib/some.jarlib是和test.jar同⽬录的⼀个⼦⽬录,test.jar要引⽤的some.jar包就在这⾥⾯。
然后测试运⾏,⼀切正常!如果有多个jar包需要引⽤的情况:Class-Path: lib/some.jar lib/some2.jar每个单独的jar⽤空格隔开就可以了。
ECLIPSE将引用了第三方JAR包的JAVA项目打包成JAR文件的两种方法在Eclipse中,我们可以使用两种方法将引用了第三方JAR包的Java项目打包成JAR文件。
下面将详细介绍这两种方法。
方法一:使用Eclipse自带的导出功能1. 在Eclipse中,右键单击项目,选择"Export"。
2. 在弹出的对话框中,选择"Java"下的"JAR file",然后点击"Next"。
3. 在"JAR File Specification"页面上,选择要导出的项目以及要导出的资源;在"Export destination"中,指定导出的JAR文件的保存路径和文件名。
4. 在"JAR Packaging Options"页面上,选择"Export generated class files and resources",确保要导出的类文件和资源都被包含在JAR文件中。
5. 在"Select the export destination"页面上,选择"Package required libraries into generated JAR",这将会将所需的第三方JAR包也包含在生成的JAR文件中。
6. 点击"Finish"完成导出。
这种方法的优点是简单快捷,只需要几个简单的步骤就可以完成打包。
但是缺点是生成的JAR文件会将第三方JAR包也放在同一个目录下,可能导致文件夹混乱。
方法二:使用Apache Maven插件打包1. 首先,确保你的项目中存在pom.xml文件,它描述了项目的依赖关系和构建配置。
2. 打开Eclipse的"Terminal"窗口,或者使用其他的命令行工具。
在Java类中,我们可以通过“import +包名+类名”的方式引用第三方包(jar)或者第三方类(class),但你得告诉Java编译和运行环境到哪里去找这些库或者类,如果这些没有设置好,就会出现类似于某某类无法解析,NoClassDefFoundError等问题。
因此,我们必须通过Eclipse指定这些路径来告诉Jvava的开发和运行环境,到哪里去找这些包和类。
1,通过环境变量指定JAR包Window->Preferences->Java->Build path->Classpath variables,用一个变量指定包的位置,类似于环境变量中设置CLASSPATH。
由两个部分组成,一个是name,指定变量名;一个是file path,指定jar包所在位置,或者是folder,指定类文件所在文件夹。
这样的好处是如果包的位置发生了变化,我们只需要回到这个地方修改jar 包和类的位置,而项目中对于这些包和类的引用不需要修改。
2,通过建立用户库同时指定多个JAR包Window->Preferences->Java->Build path->User libraries,创建一个用户库,可以向其中添加多个jar,因为可能有多个项目,而每个项目又可能同时引用多个同样的包(jar),把这些包放在同一个user libraries下,就可以让每个项目只引用这一个库就OK了,省去每次需要为每个项目添加多个包的麻烦。
3,指定项目开发中使用的jar(出现在package explorer的Referenced libraries中):project->properties->java build path->libraries出现几种添加jar包的方式,这里分别解释一下a,Add JARs...添加项目内的jar包到项目的引用路径中。
有时候,我们会把一些第三方包放到我们的项目的文件夹中(比如a.jar),一般我们会给这个文件夹取名lib。
详解eclipse将项⽬打包成jar⽂件的两种⽅法及问题解决⽅法第⼀种:利⽤eclipse中⾃带的export功能第⼀种⽅法分两种情况先来看第⼀种情况:没有引⽤外部jar的项⽬打包步骤⼀:右键点击项⽬选择导出(export),选择java>jar⽂件(不是选择可运⾏jar⽂件)步骤⼆:选择你要导出的项⽬以及⽂件,指定⽂件导出路径。
连续点击两个下⼀步后到第四步。
步骤三:选择主类。
按照以上步骤即可完成对⼀个不引⽤外部jar项⽬的打包。
第⼆种情况:没有引⽤外部jar的项⽬打包当我们引⽤了外部jar后,使⽤eclipse⾃带的export打包略显繁琐。
步骤⼀:准备主清单⽂件 “ MAINFEST.MF ”,放在项⽬的⽂件夹下⾯。
MAINFEST.MF是jar的配置⽂件,第⼀⾏定义版本,第⼆⾏指出外部jar的路径,第三⾏是主类指⽰,第四⾏是空⾏。
Manifest-Version: 1.0Class-Path: lib/RXTXcomm.jarMain-Class: com.main.Client值得注意的是,MAINFEST.MF编写需要严格规范,稍有不慎将会导致jar执⾏⽆效1 第⼀⾏不能空,⾏与⾏之间不能有空⾏,每⼀⾏的最后⼀个字符不能是空格2 最后⼀⾏⼀定是空⾏3 每个属性的名称和值之间(冒号后⾯)⼀定要有空格4 ⽂件的每⼀⾏都不能超过72个字节(⼀般是70个ASCII字母加上回车换⾏符);如果72个字节不够⽤,则另起⼀⾏并以空格开头:以空格开头的⾏都被视为前⼀⾏的续⾏。
详细规则这篇⽂章有讲到步骤⼆:与没有外部jar的项⽬⼀样,像上⾯那样先执⾏到步骤三,不同的是要选着现有的清单,然后点击完成。
以上就是第⼀种⽅法的两种情况,⾄此,我们已经可以⽣成jar包了。
(如何运⾏jar⽂件?点击这⾥)第⼀种:利⽤eclipse插件Fat jar打包jar步骤⼀:先给eclipse安装好Fat jar插件待⽂件加载出来后点击全部选中,⼀直下⼀步知道完成,会提⽰重启,安装完成。
java-jar命令运⾏jar包时指定外部依赖jar包你们都知道⼀个java应⽤项⽬能够打包成⼀个jar,固然你必须指定⼀个拥有main函数的main class做为你这个jar包的程序⼊⼝。
具体的⽅法是修改jar包内⽬录META-INF下的MANIFEST.MF⽂件。
好⽐有个叫作test.jar的jar包,⾥⾯有⼀个拥有main函数的main class:test.someClassName。
咱们就只要在MANIFEST.MF⾥⾯添加以下⼀句话:htmlMain-Class: test.someClassName⽽后咱们能够在控制台⾥输⼊java -jar test.jar便可以运⾏这个jar。
可是咱们这个项⽬须要引⽤其余第三⽅的jar包,在eclipse⾥⾯以项⽬jar包的形式引⽤了这个叫作some.jar的包,当时放在项⽬的lib⼦⽬录下,最后项⽬打包时把这个some.jar也打进来了,可是⽤java -jar执⾏这个test.jar的时候报找不到Class异常,缘由就是jar引⽤不到放在本⾝内部的jar包。
那怎么办?运⾏时将其加⼊classpath的⽅式⾏不⾏?就是在运⾏jar的同时加⼊classpath参数:javajava -classpath some.jar -jar test.jar这种⽅式是不⾏的,由于使⽤classpath指定的jar是由AppClassloader来加载,java命令加了-jar 参数之后,AppClassloader就只关注test.jar范围内的class了,classpath参数失效。
那该怎么引⽤其余的jar包呢?linux⽅法1、使⽤Bootstrap Classloader来加载这些类算法咱们能够在运⾏时使⽤以下参数:sql-Xbootclasspath:彻底取代系统Java classpath.最好不⽤。
-Xbootclasspath/a: 在系统class加载后加载。
Eclipse 下Java程序打包成jar文件1、在Eclipse的资源管理器中,选中要打包的项目,单击右键,选择“Export”,弹出如图1所示的对话框。
图1 选择导出java文件2、在Java目录下选择“JAR file”,点击“Next”,见图2。
图2 选择导出JAR file3、在“Select the resource to export”中选择你想要包含的项目文件。
这里有几个选项:∙Export generated class files and resources:表示只导出生成的.class文件和资源文件。
∙Export all output folders for checked projects:表示导出选中项目的所有文件夹。
∙Export java source file and resouces:表示导出的jar包中将包含你的源代码*.java 。
∙Export refactorings for checked projects:把一些重构的信息文件也包含进去。
在Select the export destination中选择导出的jar的路径,点击“Next”。
图3 JAR File Specification4.选择是否导出那些含有警告warning或者错误errors的*.class文件。
图4 JAR Packaging Option5、项目配置。
∙Generate the manifest file:系统自动生成MANIFEST.MF文件。
∙Use existing mainfest from workspace:选择我们自定义的.MF文件。
∙Seal content:要封装整个jar或者指定的packet。
∙Main class:选择程序入口,将来打包出来的jar就是这个入口类的执行结果。
最后点击“Finish”,完成打包。
图5 Manifest文件的配置。
o安装 eclipse 插件java 2006-11-07 14:47 阅读 1227 评论 0 字号:大中小例如:Eclipse 的安装目录是 C:\Program Files\eclipse,将要安装的插件NLpack1-eclipse-SDK-3.2.1-win32.rar (语言包位于 G:\java\eclipse中。
先把这个插件进行解压,解压之后得到 NLpack1-eclipse-SDK-3.2.1-win32这个目录,将它重命名为 language ,这个目录包含一个 eclipse 目录,具体路径为:G:\java\eclipse\language。
Eclipse 将会到指定的目录下去查找 eclipse\features 目录和 eclipse\plugins 目录, 看是否有合法的功能部件和(或插件。
也就是说,目标目录必须包含一个 \eclipse 目录。
其它压缩文件解压后若已经包含 eclipse\plugins目录,则不需要建立 eclipse 目录,否则必须建立类似G:\java\eclipse\***\eclipse\features 目录和 G:\java\eclipse\***\eclipse\plugins 目录,并将插件放到 features 和 plugins 目录下。
然后在 Eclipse 的安装目录 C:\Program Files\eclipse\links目录中建立一个 link 文件,比如 language.txt ,改文件内容为:path=G:\\java\\eclipse\\language ,即这个 link 文件要对应一个刚解压后的插件目录。
说明:1. 插件可以分别安装在多个自定义的目录中。
2. 一个自定义目录可以安装多个插件。
3. link文件的文件名及扩展名可以取任意名称,比如 ddd.txt , myplugin 都可以。
4. link文件中 path= 插件目录的 path 路径分隔要用 \\或是 /。
Java 打可执行jar包及如何加入引用包的方法1.选择项目选择Export
2.选择java->JAR file
3.选择next
4.选择next
5.下一步next
6.然后点击Finish结束
7.引用包的使用在test.jar的目录中建lib(文件夹名字随意命名).把用到的第三方jar包
放进去。
目录如下
打开生成的test.jar用解压缩的方式打开
把META-INF下的MANIFEST.MF文件拉出来。
添加用到的引用包
Class-Path:后面一定要有一个空格。
多个包后面以至少一个空格分开。
后面也一定要有两个空行。
(一定要遵守该格式)
然后把文件导入到test.jar包里,即可打开test.jar且保持了原有的功能。
效果图:
这是利用Http-Client打开新浪微博的例子。
希望能帮到你。
Java在制作jar包时引⽤第三⽅jar包的⽅法我⽤的是Eclipse打包,但在CMD窗⼝执⾏的时候报“ActiveMQ.jar中没有主清单属性”错误。
在⽹上搜了下,这个与MANIFEST.MF⽂件有关,该⽂件没有定义MAIN⽅法所在类的路径,利⽤好压打开jar包,果然如此。
⾥⾯只有⼀⾏Manifest-Version: 1.0需添加Main-Class。
在本例中,添加如下:Main-Class: com.luoluo.TestUse.activemq.ActiveMQStateMain上⾯,有⼏点需要注意:1. Main-Class:和com.luoluo.TestUse.activemq.ActiveMQStateMain中间必须有个空格,切记。
2. com.luoluo.TestUse.activemq是该类的包名,ActiveMQStateMain是main⽅法所在的类名,注意:后⾯不⽤加上.java或.class。
3. 如果不引⽤第三⽅包,需回车让光标到下⼀⾏。
不然还是会报“ActiveMQ.jar中没有主清单属性”错误。
如果引⽤了第三⽅包,在Class-Path后⾯回车,总之,在指定了相关的参数后,均需要回车让光标到下⼀⾏。
上⾯的只是定义了主类,如果引⽤了第三⽅包,则会报以下错误:Exception in thread "main" ng.NoClassDefFoundError: org/apache/activemq/broker/jmx/BrokerViewMBean这时,需在MANIFEST.MF⽂件中定义Class-Path。
在本例中,添加如下:Class-Path: lib/activemq-all-5.12.1.jar注意:Class-Path和lib/activemq-all-5.12.1.jar之间也同样需要个空格。
同时,在jar包的同层⽬录下,新建⼀个lib⽂件夹,将activemq-all-5.12.1.jar copy到⾥⾯去。
eclipse导⼊jar包
环境
eclipse、导⼊的jar包
步骤
1、⾸先在项⽬下创建⼀个⽂件夹来保存jar包,在项⽬名上右击,依次点击【New】-->【Floder】,打开新建⽂件夹窗⼝。
2、输⼊⽂件夹名称【lib】,点击【ok】。
我们通常在lib⽂件夹中存放从外部引⼊的jar包。
3、找到我们要引⼊的jar包,⿏标选中jar包,【ctrl+c】复制,选中lib⽂件夹,【ctrl+v】粘贴。
4、此时,只是把jar包复制到项⽬中,还不能使⽤。
我们再在项⽬名上右击,依次选择【Build Path】-->【Configure Build Path...】。
5、在打开的窗⼝中,先选中【Libraries】页,再从右边的按钮中点击【add JARs...】。
6、在打开的窗⼝中,我们依次展开本项⽬的项⽬和lib⽂件夹,然后选中我们刚才复制到项⽬中的jar包,然后点击【OK】关闭窗⼝。
7、此时,我们在刚才打开的【Libraries】页中可以看到我们引⼊的jar包的名称。
点击【OK】确认。
8、此时,在Eclipse中,我们就可以使⽤这个jar包了。
以上是普通项⽬导⼊jar包的过程,如果是动态web⼯程,导⼊jar包的步骤⼤体相同,只不过包所保存的⽂件夹不同。
这个⽂件夹位置是默认的。
然后按照4-8的步骤完成就可以了。
Eclipse导出可执⾏Java⼯程可执⾏Jar⽂件(包含第三⽅Jar包)Eclipse导出可执⾏Java⼯程/可执⾏Jar⽂件(包含第三⽅Jar包)师兄部署了新的虚拟机,新学期⼤搞起来!之前由于爬⾍代码不稳定,所以⼀直都是直接⽤Eclipse运⾏,然后遇到问题就修改的。
但是这个⽐较⿇烦,⽽且Eclipse本⾝就很占内存啊,摔!所以今天下午就把之前的代码清减了⼀下,对很多挫挫的System.out.println替换了log4j,路径啊数据库连接呀⽤配置⽂件处理了,最后打成可执⾏的Jar,这样在新的虚机上就可以⼤展拳脚咯^_^YBiu~废话说完,进⼊正题,将Java⼯程打包成可执⾏的Jar有各种⽅法,⽹上很多也不举例了,什么配置MANIFET⽂件啊之类的。
其实有⼀个最简单可⾏的⽅法,就是直接⽤Eclipse导出Runnable JAR file。
我的Eclipse版本是Indigo Service Release 1(貌似就是传说中的3.7,不确定)1. ⾸先,右键你的Java⼯程,选择Export,在Java⽂件夹下选择Runnable JAR file,如下图所⽰:2. 选择Runnable JAR file后,会弹出如下所⽰的对话框,选择好导出路径后,默认Finish其实就可以了。
但是需要注意的是两点:你在run configuration中设置的JVM参数在打包完成后,就不再起作⽤了,需要在执⾏jar时在命令⾏中指定(见4);对于以来的第三⽅包有三种处理⽅式,其实⽆论哪⼀种都不会影响你的使⽤的,我默认使⽤的是第⼀种,他会把以来的第三⽅jar包解压缩放到src中。
3. Finish之后,可执⾏的jar包就⽣成完毕了,如果你的⼯程中包含配置⽂件,如conf/xx.properties,那么就在与jar包同层的⽬录下创建conf⽬录,并在conf⽬录中放⼊xx.properties,如下图所⽰:4. 最后就是运⾏打包好的jar⽂件了,在命令⾏中执⾏start java命令,并指定JVM参数,例如设置初始分配内存128M,最⼤256M:start java -Xmx256m -Xms128m -jar spider.jar在上图中,我们可以看到有⼀个run.bat⽂件,这个⽂件其实⾥⾯就只有⼀⾏命令:start java -Xmx256m -Xms128m -jar spider.jar,这样双击就可以执⾏jar了。
在Eclipse中将Java项目打包为jar方法一:如果自己的java project中需要引用额外的jar包作为资源文件,那么需要自己自定义配置文件MANIFEST.MF ,内容示例如下:Manifest-Version: 1.0Class-Path: lib\crimson.jar lib\jbcl.jar lib\junit.jarlib\log4j-1.2.13.jar lib\mysql-connector-java-3.1.13-bin.jarMain-Class: src.YourMainClassName其中的Class-Paht就指定了外来jar包的位置。
请注意假设我们的项目打包后为project.jar,那么按照上面的定义,应该在 project.jar的同层目录下建立一个lib文件夹,并将相关的jar包放在里面。
否则将会出现Exception in thread "main" ng.NoClassDefFoundError的错误。
最后介绍一下使用Eclipse制作jar包的过程吧:1. 首先在Eclipse中打开项目,右键点击项目,选择“Export”;2. 选择Java/JAR file,Next;3. Select the resources to export中可以选择你想要包含的项目文件夹,一些不必要的文件夹就无需放进去了,免得增大空间;这里有几个选项:∙Export generated class files and resources 表示只导出生成的.class 文件和其他资源文件∙Export all output folders for checked projects 表示导出选中项目的所有文件夹∙Export java source file and resouces 表示导出的jar包中将包含你的源代码*.java,如果你不想泄漏源代码,那么就不要选这项了∙Export refactorings for checked projects 把一些重构的信息文件也包含进去在Select the export destination中选择导出的jar的路径,Next4. 下一页可以选择是否导出那些含有警告warning或者错误errors的*.class 文件。
Java项目中导入第三方Jar文件
演示:以导入数据库驱动Jar为示例
1、首先,在项目所在文件夹中随意创建一个子文件夹,然后将数据库驱动Jar文件放入到
该文件夹下,如下图所示:
可以看到新创建的文件夹了(本示例中文件夹名称为:lib),具体操作如下图所示:
当单击“Refresh”按钮后,可以在项目中看到自己创建的文件夹(即:lib),如下图所示:
3、 最后,然后在MyEclipse 中找到自己的项目,然后在项目上右键,弹出如下菜单:
弹出如下窗口:
,表示现在我们在项目中还无法使用该数据库
单击“Add JARs …”按钮,如上图所示,出现如下窗口:
然后单击“OK ”按钮,即可。
通过上述方式就可以将任何第三方的Jar 文件(如:数据库驱动Jar 文件)导入到当前项目中,导入后项目变为如下结构,如下图所示:
的图标变成:,才表明将来在程
以上就是如何在MyEclipse中导入第三方Jar文件的方法,请同学们自己试一试!。
Java项⽬打包成jar⽂件的两种⽅法⽅案⼀:⽤Eclipse⾃带的Export功能步骤1:准备主清单⽂件 “MANIFEST.MF”,由于是打包引⽤了第三⽅jar包的Java项⽬,故需要⾃定义配置⽂件MANIFEST.MF,在该项⽬下建⽴⽂件MANIFEST.MF,内容如下:Manifest-Version: 1.0Class-Path: lib/commons-codec.jar lib/commons-httpclient-3.1.jar lib/commons-logging-1.1.jar lib/log4j-1.2.16.jar lib/jackson-all-1.8.5.jarMain-Class: main.KillCheatFans第⼀⾏是MAINIFEST的版本,第⼆⾏Class-Path就指定了外来jar包的位置,第三⾏指定我们要执⾏的MAIN java⽂件。
这⾥要注意⼏点:1、Class-Path: 和Main-Class: 后边都有⼀个空格,必须加上,否则会打包失败,错误提⽰为:Invalid header field;2、假设我们的项⽬打包后为KillCheatFans.jar,那么按照上⾯的定义,应该在 KillCheatFans.jar的同层⽬录下建⽴⼀个lib⽂件夹(即lib⽂件和打包的jar⽂件在同⼀个⽬录下),并将相关的jar包放在⾥⾯。
否则将会出现“Exception in thread "main" ng.NoClassDefFoundError”的错误;3、Main-Class后⾯是类的全地址,⽐如你的主⽂件是KillCheatFans.java,⽂件⾥打包为package com.main; 那么这⾥就写com.main.KillCheatFans,不要加.java后缀,主⽂件地址写错将会出现“找不到或⽆法加载主类”的错误;4、写完Main-Class后⼀定要回车(即最后⼀⾏是空⽩⾏),让光标到下⼀⾏,这样你⽣成的jar包才能找到你的主class去运⾏,否则将会出现“jar中没有主清单属性”的错误。
使用第三方jar包除了我以下介绍的方法,别的方法我基本上都试验过,均会出现编译或运行错误。
以下方法经测试编译和运行都完全没问题。
步骤:方法1:Eclipse下,右键工程,Build path,java build path,选择libraries在右边的按钮中点击“Add Library”选择“User library”,点击“下一步”点击“User librarys”按钮在出现的界面中点击“New..”按钮在弹出的界面中随便起一个名字,点击“确定”点击“Add jars”按钮选择第三方jar包,点击“确定”完成。
后面的步骤很重要,如果不进行后面的操作。
在Eclipse里显示编译通过,不会有错误,但在模拟器或真机上运行的时候可能就会出现ng.noclassdeffounderror之类的错误:1、在Android项目根目录下新建一个libs文件夹;2、把你需要的导入的第三方Jar包复制进这个目录;3、在libs目录上点右键,选Bulid path –> Use as source folder。
方法2,android源码环境下,1,将out/target/common/obj/JAVA_LIBRARIES/powersave_intermediates 下的classess.jar文件放在自己的工程目录下。
out/target/product/ventana/system/framework目录下的jar包用以下方法经验证是不好使的,因为他已经打成dex文件了,在工程里引用其包是不行的;2,修改android.mk文件,如下:LOCAL_PATH:= $(call my-dir)include $(CLEAR_VARS)LOCAL_MODULE_TAGS := optionalLOCAL_SRC_FILES := $(call all-java-files-under, src)LOCAL_STATIC_JAVA_LIBRARIES := libpowerjar libpowersave LOCAL_PACKAGE_NAME := testPowerjarLOCAL_CERTIFICATE := platforminclude $(BUILD_PACKAGE)##############################################include $(CLEAR_VARS)LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES :=libpowerjar:classes.jar libpowersave:testlily.jarinclude $(BUILD_MULTI_PREBUILT)# Use the folloing include to make our test apk.include $(call all-makefiles-under,$(LOCAL_PATH))解释:LOCAL_STATIC_JAVA_LIBRARIES :=libpowerjar和LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES :=libpowerjar:classes.j ar其实libarity是个名字可以随便取,两个属性的值要一样就好了,但是后面那个冒号里面就一定要写你的jar包名,你的jar包一定放在工程的根目录就好了。
如果自己的java project中需要引用额外的jar包作为资源文件,那么需要自定义配置文件MANIFEST.MF ,例如:
Manifest-Version: 1.0
Class-Path: lib\crimson.jar lib\jbcl.jar lib\junit.jar lib\log4j-1.2.13.j ar lib\mysql-connector-java-3.1.13-bin.jar
Main-Class: src.YourMainClassName
其中的Class-Path就指定了外来jar包的位置。
请注意假设我们的项目打包后为pr oject.jar,那么按照上面的定义,应该在 project.jar的同层目录下建立一个lib 文件夹,并将相关的jar包放在里面。
否则将会出现Exception in thread "main" ng.NoClassDefFoundError的错误。
注意:如果在Class-Path 中引入比较多的jar包,不要写成一行,不然会报:java. io.IOException : line too long ,需要分多行写,第二行以及下面的第三行、第四行写的时候需要在前面空两格(敲两下空格键)即可
最后介绍一下使用Eclipse制作jar包的过程吧:
1. 首先在Eclipse中打开项目,右键点击项目,选择“Export”;
2. 选择Java/JAR file,Next;
3. Select the resources to export中可以选择你想要包含的项目文件夹,一些不必要的文件夹就无需放进去了,免得增大空间;
这里有几个选项:
* Export generated class files and resources 表示只导出生成的.clas s文件和其他资源文件
* Export all output folders for checked projects 表示导出选中项目
的所有文件夹
* Export java source file and resouces 表示导出的jar包中将包含你
的源代码*.java,如果你不想泄漏源代码,那么就不要选这项了
* Export refactorings for checked projects 把一些重构的信息文件也
包含进去
在Select the export destination中选择导出的jar的路径,Next
4. 下一页可以选择是否导出那些含有警告warning或者错误errors的*.class文件。
一般不用理他,Next
5. 下一个页面里可以对项目做一些配置。
* Generate the manifest file是系统帮我们自动生成MANIFEST.MF文件,
如果你的项目没有引用其他class-path,那可以选择这一项。
* Use existing mainfest from workspace。
这是可以选择我们自定义的.M F文件,格式如上所写。
* Seal content。
要封装整个jar或者指定的包packet
* Main class。
这里可以选择你的程序入口,将来打包出来的jar就是你这个入口类的执行结果。
最后Finish 完成。