精华内容
下载资源
问答
  • 在网上搜了下,这个与MANIFEST.MF文件有关,该文件没有定义MAIN方法所在类的路径,利用好压打开jar包,果然如此。里面只有一行Manifest-Version: 1.0需添加Main-Class。在本例中,添加如下:Main-Class: ...

    我用的是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文件夹,将相应的第三包放里面去。

    431c9f7319ae0a0860e6dfbc055319a8.png

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

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

    431c9f7319ae0a0860e6dfbc055319a8.png

    最后执行的结果如下:

    431c9f7319ae0a0860e6dfbc055319a8.png

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

    展开全文
  • 前言:maven-将依赖的 jar包一起打包...如果使用Maven默认的打包方式的话,打成项目jar包后,会导致其他第三方jar包无法找到的异常信息,报错ClassNotFoundException。以下有两种方法可以规避这个问题。一、在pom.xml ...

    前言:maven-将依赖的 jar包一起打包到项目 jar 包中

    有时候在项目开发中,需要很多依赖的 jar 包,其中依赖的 jar 包也会依赖其他的 jar 包,导致jar 包的管理很容易不全。

    如果使用Maven默认的打包方式的话,打成项目jar包后,会导致其他第三方jar包无法找到的异常信息,报错ClassNotFoundException。

    以下有两种方法可以规避这个问题。

    一、在pom.xml 文件中配置,将依赖的 jar 包放到指定的文件夹中

    在 pom.xml 的 build-plugins 节点上添加以下配置即可:

    这里相当于将第三方依赖在打包的时候,将第三方jar包放到了target下指定的lib文件夹里,但是没有打到jar包内。

    org.apache.maven.plugins

    maven-dependency-plugin

    3.0.1

    copy-dependencies

    package

    copy-dependencies

    ${project.build.directory}/lib

    false

    false

    true

    二、将项目打jar 包时,将依赖的 jar 包一起并入到项目 jar 包中

    在 pom.xml 的 build-plugins 节点上添加以下配置即可:

    这里相当于将第三方jar包一起并入到项目jar包中去了。

    org.apache.maven.plugins

    maven-assembly-plugin

    3.0.0

    jar-with-dependencies

    make-assembly

    package

    single

    三、执行Maven打包命令即可

    完整pom文件:

    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

    4.0.0

    com.dream.invengo

    license-client

    0.0.1-SNAPSHOT

    commons-codec

    commons-codec

    1.10

    commons-io

    commons-io

    2.4

    com.google.code.gson

    gson

    2.8.2

    org.slf4j

    slf4j-log4j12

    1.7.21

    license-client

    org.apache.maven.plugins

    maven-compiler-plugin

    1.8

    1.8

    UTF-8

    org.apache.maven.plugins

    maven-dependency-plugin

    3.0.1

    copy-dependencies

    package

    copy-dependencies

    ${project.build.directory}/lib

    false

    false

    true

    org.apache.maven.plugins

    maven-assembly-plugin

    3.0.0

    jar-with-dependencies

    make-assembly

    package

    single

    run as maven : clean maven执行即可

    展开全文
  • 安排我来编写一个脚本来实现,由于步骤比较多,且需要调用其他服务接口,使用shell脚本来实现比较困难,所以想到了使用shell脚本调用java可执行jar包的方式来实现,期间遇到了很多问题,因此写篇文章记录一下。...

    最近现网需要处理一下数据,来适配一个场景。安排我来编写一个脚本来实现,由于步骤比较多,且需要调用其他服务接口,使用shell脚本来实现比较困难,所以想到了使用shell脚本调用java可执行jar包的方式来实现,期间遇到了很多问题,因此写篇文章记录一下。

    IEDA创建Java项目

    打开IEDA,左上角菜单项依次选择File--->New--->Project--->Java--->Next--->Next--->输入项目名称(test)。

    fb6e9fc8f3f76079dc3a5221e173d1cb.png

    新的java项目就创建好了(不能使用Maven项目,或许可以,我没有研究过)。

    IEDA导入所需三方jar包

    项目中使用httpclient发送请求,使用到了fastjson转换数据,因此需要导入相关jar包作为项目依赖。

    右键项目名--->选择Open Module Setting(默认快捷键F4)--->打开的弹框左侧选择Libraries--->弹框中间点击“+”号--->Java--->在弹出的选择框中选择所依赖的所有jar包(将所有jar包放到同一个library中)--->OK确定

    67d9c61c36b836984ebadf0554759c26.png

    编写业务逻辑

    编写业务逻辑,入口使用一个main函数调用,以下是代码样例:

    package com.demo;

    import org.apache.http.client.methods.CloseableHttpResponse;

    import org.apache.http.client.methods.HttpGet;

    import org.apache.http.client.utils.URIBuilder;

    import org.apache.http.impl.client.CloseableHttpClient;

    import org.apache.http.impl.client.HttpClients;

    import org.apache.http.util.EntityUtils;

    import java.io.IOException;

    import java.net.URI;

    import java.util.HashMap;

    import java.util.Map;

    public class Main {

    public static void main(String[] args) {

    String url = "http://www.baidu.com";

    String result = doHttpGet(url, new HashMap<>());

    System.out.println(result);

    }

    public static String doHttpGet(String url, Map param) {

    // 创建Httpclient对象

    CloseableHttpClient httpclient = HttpClients.createDefault();

    String resultString = "";

    CloseableHttpResponse response = null;

    try {

    // 创建uri

    URIBuilder builder = new URIBuilder(url);

    if (param != null) {

    for (String key : param.keySet()) {

    builder.addParameter(key, param.get(key));

    }

    }

    URI uri = builder.build();

    // 创建http GET请求

    HttpGet httpGet = new HttpGet(uri);

    // 执行请求

    response = httpclient.execute(httpGet);

    // 判断返回状态是否为200

    if (response.getStatusLine().getStatusCode() == 200) {

    resultString = EntityUtils.toString(response.getEntity(), "UTF-8");

    }

    } catch (Exception e) {

    e.printStackTrace();

    } finally {

    try {

    if (response != null) {

    response.close();

    }

    httpclient.close();

    } catch (IOException e) {

    e.printStackTrace();

    }

    }

    return resultString;

    }

    }

    创建jar包打包规则

    右键项目名--->选择Open Module Setting(默认快捷键F4)--->打开的弹框左侧选择Artifacts

    678f70e53ef4eca39b2f9356e6cf63c0.png

    点击中间的“+”号,选择JAR--->From modules with dependencies

    65f6a3eea67ef125ce3accf703638047.png

    Main class右侧单机文件夹图标,选择自己编写main方法的类:

    96a532f9fae092c28f82182d861def2c.png

    extract to the target Jar:表示将依赖的三方jar包打包到目标jar包里面,通过这种方式打包的jar包,最终只有一个jar文件,我个人比较喜欢

    copy to the output directory and link via manifest:将依赖的jar包拷贝到某个路径下,并且通过mainifest进行链接,这种情况下依赖的三方jar包会以独立jar包的方式存在

    Directry for META-INF/MAIFEST.MF:指定mainifest文件生成路径,如果上面选择了copy to the output directory and link via manifest,那么这个文件要确保和生成的jar包放在同一个目录下,否则会出现生成的jar包引用不到第三方jar包的方式,这里我们将第三方jar包打包到目标jar包中,不存在这个问题,所以使用默认路径即可。

    点击OK后,记住Output directory的路径,也可以自定义路径:

    f61abda1d675156ba73f3f2f82a4d455.png

    然后点击OK

    生成jar包

    点击Build--->Build Artifacts

    3ab78888357ae069582bf93df4fa42a0.png

    会看到上面定义好的jar包

    14f7337d076313b0044b343e6e40a723.png

    Build:第一次生成jar包时,选择Build生成jar包

    Rebuild:后面修改了程序后,只需要执行Rebuild即可。

    由于是第一次生成jar包,我这里点击Build,等IEDA任务处理完后,前往F:\javacode\test\out\artifacts\test_jar路径下,在地址栏内输入“cmd”,调用命令行程序。

    在命令行中输入java -jar test.jar回车运行:

    bc707f8362f9c7fa5ff33302e98d6a00.png

    有内容返回,说明jar包执行成功。

    将test.jar文件复制到其他路径,再次执行java -jar test.jar进行验证,也可以正常执行,说明jar包打包成功。

    4a16d12e62b03d105ed82dd72484d0b5.png

    展开全文
  • 1、右击工程选择Export—>选择JAR file—>选择NEXT,如下图所示2、选择需要打包的工程,...4、如果没有项目工程没有涉及到第三方jar包,那么在Specify the manifest选择Generate the manifest file,然后Mai...

    1、右击工程选择Export—>选择JAR file—>选择NEXT,如下图所示

    4f99a2baf47aca4c03ac7e26dc9460e6.png

    2、选择需要打包的工程,并且选择存放目录,我这放在 E:\jartest 目录下,然后点击NEXT,如下图所示。

    54ded3ea691fe0091a1dd5bf4242498d.png

    3、这一步默认就行,点击NEXT。

    efb5548ea14a3e52a9a7589f1a6bea2a.png

    4、如果没有项目工程没有涉及到第三方的jar包,那么在Specify the manifest选择Generate the manifest file,然后Main Class选择包含主函数的类。如下图所示

    6c64fb185bc2c530906b8d53787e149d.png

    如果项目工程使用到第三方的jar包,那么需要自己写manifest文件。右击工程—>选择New File—>填写MANIFEST.MF—>点Finish。如下图所示:

    e3d9c68906a6bc3d00a0ba19010eb40f.png

    然后打开MANIFEST.MF文件,编写内容如下:

    1 Manifest-Version: 1.0

    2 Class-Path: lib\customizer.jar lib\jmf.jar lib\mediaplayer.jar lib\multiplayer.jar lib\sound.jar lib\jpcap.jar

    3 Main-Class: cn.MyInterface.SendModule4

    第一行是MAINIFEST的版本,第二行Class-Path就指定了外来jar包的位置,第三行指定我们要执行的MAIN java文件。(来自:http://www.cnblogs.com/lanxuezaipiao/p/3291641.html)

    这里要注意几点:

    1、Class-Path: 和Main-Class: 后边都有一个空格,必须加上,否则会打包失败,错误提示为:Invalid header field;

    2、假设我们的项目打包后为sender.jar,那么按照上面的定义,应该在 KillCheatFans.jar的同层目录下建立一个lib文件夹(即lib文件和打包的jar文件

    在同一个目录下),并将相关的jar包放在里面。否则将会出现“Exception in thread "main" java.lang.NoClassDefFoundError”的错误;

    3、Main-Class后面是类的全地址,比如你的主文件是SendModule.java,文件里打包为package cn.MyInterface; 那么这里就写cn.MyInterface.SendModule,

    不要加.java后缀,主文件地址写错将会出现“找不到或无法加载主类”的错误;

    4、写完Main-Class后一定要回车(即最后一行是空白行),让光标到下一行,这样你生成的jar包才能找到你的主class去运行,

    否则将会出现“jar中没有主清单属性”的错误。

    然后在Specify the manifest选择Use existing manifest from workspace,然后Main Class选择包含主函数的类。如下图所示

    9a93a3f28bbb7e797884f0f978e87606.png

    5、最后点击Finish,生成jar文件。

    展开全文
  • 如何在maven项目中引入第三方jar包呢?带着问题去搜索能够找到一大把答案,stackoverflow的相关问题发表于9年前,最佳答案获取了1100多个赞。但由于时间过于久远,该方法经测试虽然在开发过程中可行,但项目一旦打包...
  • 前言: springboot 工程的依赖都是通过 maven 管理,...在 resources 目录下创建一个 lib 目录,把所有 jar 都拷到该目录。 二、在 pom 中引入三方sdk 需要引入的 jar 有5个,pom 配置如下,其中标签gro...
  • 普通java Project 引入jar包:1,copy jar to lib folder.2,imported with Build path -> Add external jars, and it worked perfectly.Java Web Project 引入jar包:1,copy jar to WebContent/WEB-INF/lib/2,...
  • JAR file ,我的jar包里面还引用了第三方jar包:比如 log4j, 我也碰到了这样的问题:“我的程序里引用了别的JAR包在ECLIPSE里运行正常我想把我的程序打个JAR包打包的时候把引用的包也打进去了可运行程序确总是找不...
  • http://mengchong337.blog.163.com/blog/static/350404042011424965805/调用外部jar时,只需写好MAINFEST.MF,生成jar后,带上第三方jar。 或者用 fat-jar插件更简单,但是eclipse - luna 不支持(1)选中要打包的...
  • 引用的第三方jar包找不到第三方jar类库NoClassDefFoundError
  • IDEA中导入第三方jar包

    2021-08-13 22:05:13
    如何在IDEA中导入第三方jar包 jar包就指第三方提供的开源的API,这些API不属于JDK的,需要通过导入才能使用。 导入步骤如下: 一、在工程下新建一个文件夹,习惯性叫做lib或libs(library的缩写),然后将下载好的jar...
  • 转自:使用Sonatype Nexus搭建Maven私服后如何添加第三方JAR包?_Maven_Java-ITnose http://www.itnose.net/detail/6178985.html首先访问自己的私服我的内网地址是:http://172.27.101.152:8081/nexus用户名密码为默认...
  • 1.首先点击项目,右键 2.点击Modules引入你的jar包 3.点击 4.关键部分 引入你刚刚的jar包 最后 非常完美
  • 添加此PLUGIN到项目的POM.XML中maven-assembly-plugincom.allen.capturewebdata.Mainjar-with-dependencies如果出现CLASS重名的情况,这时候就要把最新的版本号添加进去即可,2,打包命令:mvn...jar-with-dependencies...
  • 用eclipse普通的打包方式,对含有第三方jar包的项目进行打包。调用方法后一只出现java.lang.NoClassDefFoundError问题。从网上搜寻,很多都是在MANIFEST.MF文件中添加Class-Path: lib/jaxrpc.jar,试了下这种方式,...
  • 如果第三方jar包没有上传到maven仓库私服, 只需要按如下配置添加jar包 com.taobao com.taobao 1.0 system ${project.basedir}/other/extlib/taobao-sdk-java-auto_1479188381469-20190821.jar
  • 使用原因:使用maven时,有些第三方jar包是不能从maven远程仓库中下载得到,因此导致在pom.xml中添加jar包依赖时会怎么添加都会报错(Missing artifact ojdbc:ojdbc:jar:14),这是我们需要自己去相应官网下载jar包,...
  • 在项目开发中不可避免会遇到引入第三方jar包的情况,这些第三方jar是在Maven仓库中没有的。 有两种处理方式: 将jar包安装在本地maven库(本地私服) 将jar包放入项目目录中 其中第一种方式与通常的使用方式没有...
  • 【python自动化五篇:python入门进阶】 今天内容: 模块的定义 导入方法 import的本质 导入优化 模块分类 模块介绍 一.模块定义: 用来在逻辑上组织python代码(变量,函数,逻辑,类):本质就是为了实现一个功能(就是以...
  • hamcrest-core-1.3.jar + junit-4.12.jar 用于测试类 --------------------------------------------以下为Spring框架---...Test类锁依赖的jar包: hamcrest-core-1.3.jar + junit-4.12.jar +spring-test-4.2.4.R...
  • 打包的时候就提示找不到jar包,后来在pom.xml文件 dependencies标签里加上 <dependency> <groupId>taobao-sdk</groupId> <artifactId>taobao-sdk</artifactId> <version...
  • 1:如果是单独可运行的jar(排除Tomcat) 在pom文件 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <!-- ...
  • android studio 版本 3.2.1framework源码编译出来的jar路径如下:out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/classes.jardroidlogic源码编译(vendor/amlogic/frameworks/core/java)出来的jar...
  • maven打包该项目,找不到这个jar包 解决办法 maven中添加这个jar包 <dependency> <groupId>com.mim34j</groupId> <artifactId>com.mim34j</artifactId> <version>1.0&...
  • 本文详细的介绍了vscode快速引入第三方jar包发QQ邮件,分享给大家,具体如下:安装 jdk直接安装下一步即是安装maven若想多版本切换,删除环境变量中的javapath即可安装插件vscode插件装一个pack就行了,后续想装哪个...
  • 展开全部注:在把类生成jar文件的过程中发现一个问题,存e69da5e887aa3231313335323631343130323136353331333365663530放类文件的不能是Eclipse默认的,必须要自己创建一个,不然后面就无法导入该类。...
  • 开发过程中,项目中总会引入一些第三方依赖包,以便通过直接调用jar包中的方法来完成某些实际业务。但是有时候jar包中封装的方法可能跟我们的实际需求有些出入,需要修改业务逻辑后重新打包才能使用,但是jar包可能...
  • 问题分析:由于项目引用第三方jar包(非maven仓库),所以在用maven install进行打包时,报错提示程序包不存在,但实际上jar包是存在的,在类中进行import也没有问题。 解决办法(IntelliJ IDEA): 1、将要引用的...
  • 方法二:解压方式打包,手动整合多个jar包 Android Studio 版本: 方法一:Android studio 直接打包 插入 代码位置: 需要置入的代码 task makeJar(dependsOn:['compileReleaseJavaWithJavac'],type:Jar){ ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 148,526
精华内容 59,410
关键字:

第三方jar包