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

本文详细介绍了解决Jar包运行时找不到依赖包的问题方法,包括将第三方Jar包放置于JRE扩展目录、修改MANIFEST.MF文件等。此外,还提供了如何在Eclipse中正确配置并导出包含依赖的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文件,放到项目中

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

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

目录结构

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”

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

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

并选择导出路径

 4、点击“Next”

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

点击“Finish”生成

 

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

如下图勾选

 

<think>首先,用户的问题是:解决IDEA运行提示不到JAR的问题。用户提供了几个引用作为参考。 引用内容: - [^1]:关于解决IDEA使用Maven编译正常但运行提示不到JAR的问题。提到可能是因为Maven配置问题。 - [^2]:IDEA 2020.1运行Maven工程报错不到JAR,建议设置"Delegate IDE build/run actions to Maven"。 - [^3]:IDEA导入JAR后仍提示不到类,建议移除公共模块代码中的Spring Boot Maven插件。 用户的问题是IDEA运行不到JAR,我需要根据这些引用提供解决方案。系统指令要求: - 使用中文回答。 - 结构清晰,逐步解决问题。 - 确保真实可靠(基于提供的引用)。 - 行内数学表达式用$...$,但这里不涉及数学,所以可能不需要。 - 独立公式用$$...$$,但同样不适用。 - 生成相关问题。 - 引用的段落末尾添加引用标识。 回答结构: 1. **理解问题**:简要解释IDEA运行不到JAR的常见原因。 2. **逐步解决方案**:基于引用,列出可能的解决方案。 - 检查Maven配置。 - 设置IDE委托给Maven。 - 移除不必要的Maven插件。 - 其他常见步骤。 3. **生成相关问题**:在结尾添加相关问题。 关键解决方案来自引用: - 引用[^2]:设置"Delegate IDE build/run actions to Maven"。 - 引用[^3]:移除Spring Boot Maven插件(如果适用)。 - 引用[^1]:一般Maven编译正常但运行出错,可能是依赖管理问题。 其他可能的解决方案(基于常识): - 确保Maven依赖正确下载。 - 清理和重新构建项目。 - 检查IDEA的缓存和设置。 确保回答真实可靠:基于提供的引用,不要添加未经验证的信息。 生成相关问题: - 例如:如何避免IDEA中的依赖问题?Maven依赖冲突如何解决?等。 完整回答框架: 1. 介绍问题。 2. 解决方案步骤。 3. 相关问题。</think>### 解决IDEA运行提示不到JAR的问题 当在IntelliJ IDEA(以下简称IDEA)中运行项目,提示不到JAR,通常是由于Maven依赖管理、IDE配置或项目构建问题引起的。这种问题常出现在编译正常但运行出错的情况,例如控制台报错“不到程序”或“类未到”。以下是基于可靠经验的逐步解决方案,确保结构清晰且易于操作。 #### 逐步解决方案 1. **检查Maven依赖是否完整下载** 确保所有依赖已正确下载到本地仓库。 - 打开IDEA,在右侧工具栏点击 **Maven** 图标。 - 展开项目根目录,点击 **Reload All Maven Projects**(重新加载所有Maven项目)。 - 观察输出日志,确认无下载错误。如果存在网络问题,可尝试设置Maven镜像源。 - 引用[^1]提到:编译正常但运行提示JAR缺失,可能是依赖未完全加载或缓存问题[^1]。 2. **设置IDEA委托构建操作给Maven** 如果IDEA的构建机制与Maven冲突,会导致运行不到JAR。 - 进入 **File > Settings > Build, Execution, Deployment > Build Tools > Maven**。 - 勾选 **Delegate IDE build/run actions to Maven**(将IDE构建/运行操作委托给Maven)。 - 点击 **Apply** 并重启IDEA。此设置能确保IDE使用Maven的完整构建流程,避免内部缓存错误。 - 引用[^2]说明:在IDEA 2020.1版本中,此方法解决运行报错问题,尤其当代码能正常跳转但运行失败[^2]。 3. **移除不必要的Maven插件** 公共模块(如被其他项目引用JAR)中,某些插件可能干扰依赖解析。 - 打开项目的 `pom.xml` 文件。 - 检查并移除Spring Boot Maven插件(如果项目不需要独立部署): ```xml <!-- 被引用的公共模块不应含此插件,否则运行可能不到JAR --> <!-- <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> --> ``` - 保存文件后,重新执行Maven的 **Clean** 和 **Install** 命令。 - 引用[^3]指出:Spring Boot插件在公共JAR中会导致依赖冲突,移除后能解决编译不到类的问题[^3]。 4. **清理IDEA缓存并重新构建** 如果以上步骤无效,IDEA的缓存可能已损坏。 - 选择 **File > Invalidate Caches / Restart**。 - 在弹出的对话框中选择 **Invalidate and Restart**(清理并重启)。 - 重启后,在IDEA顶部菜单点击 **Build > Rebuild Project** 重新构建项目。 5. **验证依赖范围和路径** - 确保 `pom.xml` 中的依赖范围(如 `<scope>compile</scope>`)正确,避免使用 `test` 或 `provided` 范围导致运行缺失。 - 检查项目结构:进入 **File > Project Structure > Modules > Dependencies**,确认所有JAR路径有效且无红色报错。 #### 注意事项 - **问题根源**:此问题多由IDE与Maven构建机制不一致引起(如IDEA内部构建跳过某些依赖),或插件冲突导致依赖解析失败[^1][^2][^3]。 - **预防建议**:定期更新Maven(使用 `mvn -v` 检查版本),并确保IDEA插件(如Maven Integration)为最新版。 - 如果问题仍存在,可提供具体报错日志,以便进一步诊断。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值