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" 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文件中的内容如下:

最后执行的结果如下:

以上内容给大家分享的Java在制作jar包时引用第三方jar包的方法,希望大家喜欢。

(0)

相关推荐

  • Shell执行/调用Java/Jar程序例子的实例详解

    Shell执行/调用Java/Jar程序例子的实例详解 前言: 最近要写一个独立的Java程序去监控Hadoop和Oozie,通过Shell去调用.写代码到现在也4年多了,貌似就从来没在生产环境中写过一个独立的Java程序,不是部署到Tomcat就是直接丢给Hadoop.于是参考Hadoop等开源环境,自己写了一个demo,并且可以通过Ant打包生成可运行的程序.所以这里有三步:Java程序,Shell,Ant      1.首先建立Java程序,由于是例子,所以这里很简单,只是输出传入参数的个

  • 浅谈java 执行jar包中的main方法

    浅谈java 执行jar包中的main方法 通过 OneJar 或 Maven 打包后 jar 文件,用命令: java -jar ****.jar 执行后总是运行指定的主方法,如果 jar 中有多个 main 方法,那么如何运行指定的 main 方法呢? 用下面的命令试试看: java -classpath ****.jar ****.****.className [args] "****.****"表示"包名": "className"表示&

  • java打包成jar并执行jar包中指定的main方法

    java打包成jar jar -cvf [jar包的名字] [需要打包的文件] 执行jar包中的main方法 java -jar ****.jar 执行后总是运行指定的主方法,如果 jar 中有多个 main 方法,那么如何运行指定的 main 方法呢? 用下面的命令试试看: java -classpath ****.jar ****.****.className [args] "****.****"表示"包名": "className"表示&q

  • 在eclipse导入Java的jar包的方法JDBC(图文说明)

    在使用JDBC编程时需要连接数据库,导入JAR包是必须的,导入其它的jar包方法同样如此,导入的方法是 打开eclipse 1.右击要导入jar包的项目,点properties  2.左边选择java build path,右边选择libraries  3.选择add External jars  4.选择jar包的按照路径下的 确定后就行了. Java连接MySQL的最新驱动包下载地址 http://www.mysql.com/downloads/connector/j 有两种方法导入jar包

  • java动态添加外部jar包到classpath的实例详解

    java动态添加外部jar包到classpath的实例详解 前言: 在项目开发过程中我们有时候需要动态的添加外部jar包,但是具体的业务需求还没有遇到过,因为如果动态添加外部jar包后,我们就需要修改业务代码,而修改代码就需要重新启动服务,那样好像就没有必要动态添加外部jar包了,怎么样才能不重新启动服务器就可以使用最新的代码我没有找到方法,如果各位知道的话给我点建议,回归主题,实现动态添加外部jar包到classpath的方法如下: String beanClassName = "com.dy

  • Linux下用java -jar运行可执行jar包的方法教程

    问题来源 一般来说,一个稍微大些的项目都会有一些依赖的Jar包,而在将项目部署到服务器的过程中,如果没有持续集成环境的话,也就是说服务器不支持在线编译及打包,那么需要自己上传依赖的Jar包,然而可能服务器上已经存在了该项目所依赖的Jar包(比如项目修复BUG,重新打包上传,而依赖不变),无需再次上传,此时只需将该项目单独打包,在运行的时候指定CLASSPATH即可. 在将Jar包部署到服务器上之后,设置CLASSPATH环境变量,运行Java -jar ...命令出现ClassNotFoundE

  • 使用Javacsv.jar的jar包操作csv文件的方法

    CSV其实就是COMMA SEPARATED VALUE的缩写.csv文件是分隔文件,如果使用java的io流来写,比较麻烦,这里为大家提供一个javacsv的jar包,这个很方便操作csv文件. 下载地址:http://xiazai.jb51.net/201608/yuanma/javcsv(jb51.net).rar 那如何使用呢? 只要看看以下一个例子,您一下就明白了. import com.csvreader.CsvReader; import com.csvreader.CsvWrit

  • 从Java的jar文件中读取数据的方法

    本文实例讲述了从Java的jar文件中读取数据的方法.分享给大家供大家参考.具体如下: Java 档案 (Java Archive, JAR) 文件是基于 Java 技术的打包方案.它们允许开发人员把所有相关的内容 (.class.图片.声音和支持文件等) 打包到一个单一的文件中.JAR 文件格式支持压缩.身份验证和版本,以及许多其它特性. 从 JAR 文件中得到它所包含的文件内容是件棘手的事情,但也不是不可以做到.这篇技巧就将告诉你如何从 JAR 文件中取得一个文件.我们会先取得这个 JAR

  • 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. Mai

  • Eclipse 导出可执行Java工程/可执行Jar文件(包含第三方Jar包)

    Eclipse导出可执行Java工程/可执行Jar文件(包含第三方Jar包) 师兄部署了新的虚拟机,新学期大搞起来!之前由于爬虫代码不稳定,所以一直都是直接用Eclipse运行,然后遇到问题就修改的.但是这个比较麻烦,而且Eclipse本身就很占内存啊,摔!所以今天下午就把之前的代码清减了一下,对很多挫挫的System.out.println替换了log4j,路径啊数据库连接呀用配置文件处理了,最后打成可执行的Jar,这样在新的虚机上就可以大展拳脚咯^_^Y Biu~废话说完,进入正题,将Jav

  • Android Studio 在项目中引用第三方jar包的方法

    在Android Studio项目中引用第三方jar包的方法: 步骤: 1.在build.gradle文件中添加如下代码: 备注:要添加在Android作用域下 sourceSets { main { jniLibs.srcDirs = ['libs'] } } 点击[Sync Now],会生成jniLibs文件夹 找到jniLibs文件夹对应的实体目录,把需要用到的jar包放到该目录下 在build.gradle文件中,在dependencies模块,添加以下代码: compile files

  • Android Studio工程引用第三方so文件的方法

    应用程序二进制接口(Application Binary Interface)定义了二进制文件(尤其是.so文件)如何运行在相应的系统平台上,从使用的指令集,内存对齐到可用的系统函数库.在Android 系统上,每一个CPU架构对应一个ABI:armeabi,armeabi-v7a,x86,mips,arm64- v8a,mips64,x86_64. jar包存放到工程的libs目录下. 在main下建个文件叫jniLibs android { compileSdkVersion 26 buil

  • IDEA生成可运行jar包(包含第三方jar包)流程详解

    最近现网需要处理一下数据,来适配一个场景.安排我来编写一个脚本来实现,由于步骤比较多,且需要调用其他服务接口,使用shell脚本来实现比较困难,所以想到了使用shell脚本调用java可执行jar包的方式来实现,期间遇到了很多问题,因此写篇文章记录一下. IDEA创建Java项目 打开IDEA,左上角菜单项依次选择File--->New--->Project--->Java--->Next--->Next--->输入项目名称(test). 新的java项目就创建好了(不

  • Android.mk文件中添加第三方jar文件的方法

    先添加: LOCAL_STATIC_JAVA_LIBRARIES += clib clib为jar文件名,没有后缀 然后下面语句中间添加 LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES :=clib:libs/clib.jar include $(CLEAR_VARS) include $(BUILD_MULTI_PREBUILT) 即: include $(CLEAR_VARS) LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES := clib

  • IntelliJ IDEA引入第三方jar包或查看Java源码的时候报decompiled.class file bytecode version:52.0(java 8)错误的解决办法

    引入第三方jar包或者查看Java源码的时候,经常遇到问题如下: decompiled.class file bytecode version:52.0(java 8) ,open source file. 翻译一下上面的意思:(反编译 .class文件中的字节码 到Java 8 版本) 打开源文件 其实这个时候,你就得注意一下,你看到文件是 .class文件,还是 .java文件. 然后我就详细的总结了一下,二者的差别: 1.先是理论知识: .java为Java的源文件后缀,编写的代码需要写在

  • maven项目引用外部jar包的方法

    问题描述: 有一个java maven web项目,需要引入一个第三方包gdal.jar,但是这个包是自己打包的,在maven中央库里面找不到该包,因此我采用传统的方式,将这个包拷贝到:项目名称\src\main\webapp\WEB-INF\lib的目录下,然后通过config build path将该gdal.jar包引入到项目工程中.对于传统java web项目,这么做当然没有问题,但是对于maven项目,项目打包(mvn install)时就会报错,在项目调试时(debug on ser

  • Intellij Idea中批量导入第三方jar包的全过程

    目录 添加和导入的区别 具体步骤 1. 创建lib文件夹 2. 添加为Library 3. 添加Dependence 4. 检查是否引用成功 5. 继续添加jar包 总结 jar包就指第三方提供的开源的API,这些API不属于JDK的,需要通过导入才能使用. 添加和导入的区别 注意:本文里的 导入 和 添加 jar包是不同的含义. 导入:在代码中引用jar包. 添加:只是简单把jar包拷贝到项目中而没有引用,这时会报错. 所以我们的目标是导入,也就是能让我们的编译器找到jar包中的类. 具体步骤

  • 解决java maven项目找不到jconsole-1.8.0.jar和tools-1.8.0.jar包问题

    今天遇到了这样一种情况,自己的maven项目中并没有引用的jar包出现在了Maven Dependencies的依赖包中.而我在pom.xml自己没有没有引入啊. 图示 怀疑是自己的alibaba 的druid所依赖的包: <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.0.14</version>

随机推荐