运行jar包时,找不到引用的依赖包的解决方法

案例:jar包快速部署,运行的小工具

源码:jar包快速部署,直接运行的项目源码

我收藏的文章

运行jar包找不到依赖包的解决方法

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

JAR包中的MANIFEST.MF文件详解以及编写规范

Eclipse导出Jar包,修改Manifest.MF文件的Calss-Path

 vbe文件代码

Set shell = Wscript.CreateObject("WScript.Shell")

a = shell.run ("e:\\111\\startjar.bat",0)

bat文件代码 

@echo off

:: set "JAVA_HOME=D:\Programs\Java\jdk1.8.0_241"
set "JRE_HOME=%cd%"


call %JRE_HOME%\jre\bin\java -jar meta.jar

pause

解决办法1:

将第三方jar包放到JRE的扩展类文件夹中(%JAVA_HOME%/jre/lib/ext),

解决方法2:

修改jar包的MANIFEST.MF文件

详细如下:

通过不断地试验,终于成功了!

1、写好自己的MANIFEST.MF文件,放到项目中

运行jar包时,找不到引用的依赖包的解决方法_第1张图片

2、新建文件夹test位于D盘;

3、将用到的所有第三方jar包放在文件夹lib下,再将lib放在test下;

目录结构

运行jar包时,找不到引用的依赖包的解决方法_第2张图片

4、导出的java工程jar包a.jar,指定自己的MF文件,导出test下;

编写MANIFEST.MF文件时的注意事项:

说明:一般编写MANIFEST.MF文件只需要用到Manifest-Version(MF文件版本号)、Main-Class(包含main方法的类)、Class-Path(执行这个jar包时的ClassPath,第三方依赖)

比如以下的例子:

Manifest-Version: 1.0 
Main-Class: test.Main 
Class-Path: ./ ./lib/commons-collections-3.2.jar ./lib/commons-dbcp-1.2.2.jar ./lib/commons-lang-2.3.jar ./lib/commons-logging-1.1.jar 

下图是我写的MF文件:

Manifest-Version: 1.0
Sealed: true
Main-Class: com.ftm.main.MetaMain
Class-Path: ./lib/dom4j-1.6.1.jar ./lib/commons-io-2.9.0.jar ./lib/commons-lang3-3.12.0.jar ./lib/fastjson-1.2.6.jar ./lib/jeasypoi-annotation-2.1.4.jar ./lib/jeasypoi-base-2.1.4.jar ./lib/log4j-api-2.14.1.jar ./lib/poi-3.9.jar ./lib/poi-ooxml-3.9.jar ./lib/poi-ooxml-schemas-3.9.jar ./lib/slf4j-api-1.6.6.jar ./lib/sqljdbc4-4.0.jar ./lib/xmlbeans-2.6.0.jar

导出Jar包步骤

 1、右击项目,选择“Export”

运行jar包时,找不到引用的依赖包的解决方法_第3张图片

 2、选择“JAR file” ,点击“Next”

运行jar包时,找不到引用的依赖包的解决方法_第4张图片

3、选择好需要导出项目(已默认勾选),和文件(右侧)

并选择导出路径

运行jar包时,找不到引用的依赖包的解决方法_第5张图片

 4、点击“Next”

运行jar包时,找不到引用的依赖包的解决方法_第6张图片

5、勾选“Use existing manifest from workspace”,选择写好的MANIFEST.MF文件

点击“Finish”生成

 运行jar包时,找不到引用的依赖包的解决方法_第7张图片

 如果不使用自己的MANIFEST.MF,则选择默认系统生成的MANIFEST.MF文件,

如下图勾选

 运行jar包时,找不到引用的依赖包的解决方法_第8张图片

你可能感兴趣的:(java,jar,java,eclipse)