如何在制作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" java.lang.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到里面去。

譬如,在本例中,jar包是在C:\Users\Victor\Desktop下,则需在C:\Users\Victor\Desktop目录下新建一个lib文件夹,将相应的第三包放里面去。

前者是打包的jar包,后者是lib文件夹,里面放的是第三方jar包。

最后,MANIFEST.MF文件中的内容如下:

最后执行的结果如下:

时间: 2024-11-03 20:51:23

如何在制作jar包时引用第三方jar包的相关文章

DOS环境下含包并引用第三方jar的java程序的编译及运行

DOS环境下含包并引用第三方jar的java程序的编译及运行 1.程序目录机构 bin:class文件生成目录 lib:第三方jar包目录 src:源程序文件目录 2.程序代码: 3.程序编译 javac –classpath .;..\lib\commons-lang-2.3.jar -d ..\bin com\Test.java 4.编译后的程序目录: 5.运行程序及结果显示 java -classpath .;..\lib\commons-lang-2.3.jar com.Test

SoapUI 引用第三方jar包和引用Groovy脚本

SoapUI仅支持JavaScript脚本和Groovy脚本,我们项目中要引用第三方jar包,那么如何操作呢?  百度上关于SoapUI引用第三方jar包的资料实在太少了. 下面是详细的介绍: 一.首先是jar包的代码以及生成jar包的名称: package是com.test.demo import java.util.*; public class DemoJAR { public String outp() { return "This is a demo!"; } public

Ant打包可运行的Jar包(加入第三方jar包)

本章介绍使用ant打包可运行的Jar包. 打包jar包最大的问题在于如何加入第三方jar包使得jar文件可以直接运行.以下用一个实例程序进行说明. 程序结构: 关键代码: package com.alfred.main; import com.alfred.bean.User; import com.alfred.util.ProjConfig; import com.thoughtworks.xstream.XStream; public class Main { public static

mapreduce引用第三方jar

要想让mapreduce程序引用第三方jar文件, 可以采用如下方式: 通过命令行参数传递jar文件, 如-libjars等; 直接在conf中设置, 如conf.set(“tmpjars”,*.jar), jar文件用逗号隔开; 利用分布式缓存, 如DistributedCache.addArchiveToClassPath(path, job), 此处的path必须是hdfs, 即自己讲jar上传到hdfs上, 然后将路径加入到分布式缓存中; 第三方jar文件和自己的程序打包到一个jar文件

【Android笔记】Android引用第三方依赖包library报错解决方法

在Android工程项目中,我们经常需要引用第三方依赖包library,有可能遇到以下引用报错的问题: 在设置完library后重新打开显示管理错误,就是reference那里有个红叉叉,eclipse没有报错. 那么有可能是因为: 在windows系统下,你的工程项目跟要引用的library工程项目不是在同一个盘符或跟目录下. 因为如果在不同盘符,project.properties中的android.library.reference.1值变成绝对路径,而ADT推荐是在ubuntu下使用的,

Eclipse项目中引用第三方jar包时将项目打包成jar文件的两种方式

转载自:http://www.cnblogs.com/lanxuezaipiao/p/3291641.html 方案一:用Eclipse自带的Export功能 步骤1:准备主清单文件 “MANIFEST.MF”, 由于是打包引用了第三方jar包的Java项目,故需要自定义配置文件MANIFEST.MF,在该项目下建立文件MANIFEST.MF,内容如下: Manifest-Version: 1.0 Class-Path: lib/commons-codec.jar lib/commons-htt

Android Studio引用第三方jar包(例如:使用LitePal)

如何使用LitePal的教程网上很多,不过对于新手,这些教程中遗漏了将第三方jar包拷贝到app->libs路径下后,还需要add as library. 下载LitePal 这时操作步骤如下: 选中导入的jar包,右键选择Add As Library. 点击ok 最终效果如下: 这时候,bulid.gradle中比原先多了条 compile files('libs/litepal-1.4.0-src.jar')

运行jar应用程序引用其他jar包的四种方法(转)

(1)在Eclipse中操作 上面的截图中eclipse的版本是: (2)下面的内容是相关原理,及手工完成此目标的操作细节: 大家都知道一个java应用项目可以打包成一个jar,当然你必须指定一个拥有main函数的main class作为你这个jar包的程序入口. 具体的方法是修改jar包内目录META-INF下的MANIFEST.MF文件. 比如有个叫做test.jar的jar包,里面有一个拥有main函数的main class:test.someClassName 我们就只要在MANIFES

运行jar应用程序引用其他jar包的四种方法

方法一.使用Bootstrap Classloader来加载这些类. 我们可以在运行时使用如下参数: -Xbootclasspath:完全取代系统Java classpath.最好不用.-Xbootclasspath/a: 在系统class加载后加载.一般用这个.-Xbootclasspath/p: 在系统class加载前加载,注意使用,和系统类冲突就不好了. win32     java -Xbootclasspath/a: some.jar;some2.jar;  -jar test.jar