JAVA 引入第三方包,程序启动时找不到包,打包找不到包

因项目需要采集实时数据,需要用到别人提供的若干个jar包,调用人家封装的函数,记录下这一过程碰到的问题。

最终采用的方式是加入maven管理了。

踩到的坑:程序起不来,打包打不了。

问题:

1.怎么引入包到自己的程序,程序启动找不到包怎么搞

2.该怎么打包使我们的主文件能包含这些不在maven管理的第三方jar包

第一步,准备好你要导入的jar包,进入idea中的 File->Project Structure ->Modules页面,选择你需要导入的模块,然后选择Dependencies页签,点击左上角的 【+】加号,把需要的jar全都加进来,注意生命周期设置为compile

然后点击 apply-> ok  在刷新下maven。

查看是否导入成功,看看在Project页签下的External Libraries 下有没有我们刚刚导入的包

进行到这一步,正常来说应该能使用这些jar包里面的接口。

但是有时候明明已经导入成功了,启动程序还是提示程序包找不到

Caused by: java.lang.ClassNotFoundException.xxxxx

尝试下清清缓存,删删idea的索引

还不行的话。那再进Project Structure 下的Libraries页签,看看这里有没有刚刚手动引入的包,没有的话左上角【+】加号,添加。

到这一步应该是可以了。如果还不行。。。

只能用最后一招了,因为最后我们需要打包部署到服务器上运行,所以maven给我们打包的时候也需要把这些包加上。所以直接把这些包加入maven把,让maven帮我们处理,

而我们要做的就是一个包执行一次这个命令,替换activation.jar 为需要的包,设置DgroupId 和DartifactId 的值,最好把这些包全部放在一个文件夹,我就是放在com.extend下,DartifactId就是包的名字, 版本的话直接给一个1.0.0

mvn install:install-file -Dfile=E:\第三方jar包/activation.jar -DgroupId=com.extend -DartifactId=activation -Dversion=1.0.0 -Dpackaging=jar

这个命令直接进入E:\第三方jar包这个文件夹,然后目录处敲入cmd,然后在命令窗口执行。

执行完这个后,需要在最外层的pom文件,把这个依赖加入到maven,然后在相应的模块pom文件使用它

一个外部jar包这样操作一次,最终,程序肯定能运行,打包肯定能包含这些第三方包。

不然就会出现,好不容易程序能起来了,但是打包打不进去的局面,关于打包方式,查网上的说可以使用maven带的插件,然后指定第三方包的路径,就可以,我反正试了,没成功。要是包就几个的话,直接命令执行加入maven管理,最稳妥。

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Java打包过程中出现不到符号的错误时,可能有几个原因导致这个问题。首先,需要确保项目所需的JDK版本是正确的。根据引用和引用,你的项目要求使用JDK 1.8才能正常运行,并且该符号只存在于JDK 1.8中,而在之后的JDK版本中已被删除。因此,你需要确认你的项目确实使用了正确的JDK版本。 另外,你还需要检查项目的依赖项。根据引用,有时候编译器可能会显示依赖项正确,但实际上缺少了某个class文件。这种情况下,你需要确保被引用的项目已经重新发布,并且正确引入了所有需要的依赖项。 如果以上检查都没有解决问题,你还可以考虑以下几个方案来排查: 1. 检查IDE的设置:确保IDE的编译器设置和构建路径配置正确,以确保正确引入了所有需要的库和依赖项。 2. 检查Maven配置:如果你使用了Maven来管理项目依赖,可以检查Maven的配置文件(如pom.xml)中是否正确引入了所需的依赖项,并且没有引入冲突的版本。 3. 检查类路径:确保类路径设置正确,可以尝试重新构建并清理项目缓存。 4. 检查符号引用:如果不到的符号是来自于外部库或模块,可以确保相应的库或模块已经正确引入,并且版本兼容。 5. 检查编译选项:检查编译选项是否正确设置,特别是针对符号解析和类路径的选项。 综上所述,当Java打包过程中出现不到符号的错误时,你需要检查JDK版本、项目依赖、IDE和Maven配置、类路径和编译选项等多个方面,以排查并解决该问题。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [java: 不到符号 报错](https://blog.csdn.net/a924382407/article/details/129766998)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [java: 不到符号](https://blog.csdn.net/weixin_40873693/article/details/128847101)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值