idea 使用Build Artifacts打包可执行的jar包出现:错误:找不到或无法加载主类 com.xxx.xxx

IDEA 错误 找不到或无法加载主类(完美解决) 问题报错 找不到或无法加载主类 问题截图 猜测:1,未能成功编译;尝试:菜单—》Build—》Rebuild Prodject结果:启动服务仍然报同样的错误2,缓存问题;尝试:菜单—》File—》Invalidate Caches/Restart 选择Invalidate and Restart 或者 只是Invalidate,清除掉缓存,然后 >Rebuild Project 虽然在网... 阅读详情

背景是博主想把在idea下面的项目包括依赖打包进可执行的jar(有很多种方式,maven,ant都行),在网上找了一遍教程,最后觉得直接使用idea打包最快(内网使用maven没有源真的痛苦)。

1、遇到问题

按照网上的方法,一路顺风顺水,配好main方法,配置META-INF路径(这个很重要),完全没有一点错误,顺顺利利把jar打好。你以为这就完事了?you are to simple。打完包后开开心心的在windows上输入cmd召唤出命令行,满怀信心的的敲上java -jar xxxx.jar,然后屏幕就弹出错误:找不到或无法加载主类 com.xxx.xxx。纳尼,突然傻眼了。

2、找问题和解决方案

1、遇到问题第一步想法是是不是某一步弄错了,赶紧回去翻教程,兢兢业业的把每一步重新做了一遍,然而还是一点用都没,网上好多都表示是META-INF的路径弄错了,要放在src目录下,照办了,那个错误还是跳出来嘲笑我。
2、一度没辙,想了一下把jar解压缩,看看是否真的缺类,然后发现那个.class文件就在对应的路径下。好吧。。。
3、找了大半天问题,没有头绪,这时只能找向万能的谷歌或百度了,倒是找到不将依赖包打进jar的方法,还能正常运行。这时我就有不香的鱼干。
4、想起第三步,然后自己在idea建了个简单的项目,下面只有helloword的主类,没有任何依赖,安照步骤1的方法,打包然后执行,正常打印出hello word。emmmmm,这时就怀疑有可能是部分依赖包解压缩后的问题了,然后测试加了部分依赖打包到helloword的jar包,还是能正常运行。
5、知道是部分依赖包解压会导致jar无法执行,但你又不能不用,这就很难受了,这时突然不小心扫了一个博客下面的讨论。这是博客的地址,多谢这位老哥(李志勇)的提示:每次打包后, 将jar包里面的.DSA,.FSA,.SF都删除掉,就可以运行了 (通过winRAR里面删除) ,亲测可用,具体为啥DSA,FSA,SF等会导致找不到主类的博主还在找答案,找到会在下面评论公布。也欢迎各位有经验的老哥指点,谢谢

Java项目打包实战:从JAR原理到IDEA+Maven/Gradle部署全流程 在Java开发中,JAR(Java ARchive)文件是代码交付和部署的核心载体,其本质不仅是压缩包,更是遵循特定规范的执行单元。理解JAR的清单文件(MANIFEST.MF)和主类(Main-Class)配置是打包的基础。针对依赖管理,开发者需在Fat JAR(将所有依赖打包为一个文件)和Thin JAR(依赖外置)两种模式间做出选择,这直接影响了部署的便捷性与环境隔离性。从工程实践角度,使用Maven的maven-shade-plugin或Gradle的application/shadow插件可以高效 阅读详情

相关推荐

Java应用打包独立EXE:IDEA+exe4j实现免JRE环境分发

Java应用分发常面临用户环境配置的挑战,核心在于Java运行时环境(JRE)的依赖问题。其原理是通过将应用代码、依赖库与JRE运行时一同封装,构建自包含的可执行文件。这项技术的价值在于极大降低了部署门槛,使非技术用户也能轻松使用Java开发的工具。在应用场景上,特别适用于需要分发给终端用户的桌面工具、客户端软件等。本文聚焦于使用IntelliJ IDEA构建可执行JAR包,并结合exe4j工具进行深度配置,最终生成独立的Windows EXE文件,实现真正的开箱即用。

cuiji1279的博客 386

解决IDEA中jar包构建时,没有主清单属性以及找不到或无法加载主类的问题

使用环境:Java8 + idea 2020项目是基于springboot2.1.2 搭建的,在使用idea自带的Artifacts打包jar后,运行出现:“无法加载主类”的报错。在查询解决办法后出现新报错:“没有主清单属性”。使用解压软件打开上述两种办法构建的jar包分析,是文件结构不对,遂放弃使用idea打包。后查询通过maven方式打包的方法后,成功解决问题。

YiLuoFc的博客 5474

IDEA 2024从0到1部署Tomcat与Servlet:完整避坑教程

Java Web开发离不开Servlet容器与构建工具的协同。Tomcat作为最主流的开源Servlet容器,负责处理HTTP请求并加载Web应用,而Servlet则是Java Web处理请求与响应的核心组件。理解二者的匹配关系与部署原理,是深入学习Spring MVC、Spring Boot的基础。在工程实践中,开发者常因版本选型、依赖作用域或IDEA部署配置不当,导致项目404或启动直接失败。本文以IDEA 2024环境为例,从JDK、Maven配置到war exploded部署方式,系统梳理原生Ser

weixin_34161032的博客 304

IDEA下maven编译打包Java项目成jar包但是resource下配置文件打包不成功

在分布式系统中,打包一个Java项目,准备打包成jar包直接执行,打包之后运行时候一直提示resource下资源文件找不到,但我又确实配置了的,而且在IDEA上可以运行,但是打包成jar包之后就运行不了了。 后来百度,发现对于resource下文件(properties等配置文件)需要在POM文件中配置resources配置: <build> <resources> <resource> &

wzwsq的博客 1280

IDEA 编译artifact为jar找不到包,但实际存在

artifact build时clean一下。

SHELLCODE_8BIT的博客 937

python机器人编程——用pytorch实现六轴机械臂的正向和逆向数值解算,及python算法解析

前面对六轴(或多轴)机械臂进行了一些研究,特别是利用几何进行简化,实现逆解,来完成比较简单的搬用任务。然而,如果需要比较精确的操作任务,可能需要更加复杂的机械臂解算。其中比较复杂的是数值解算,这种解算往往涉及到比较复杂的机器人运动等原理知识,比较难以上手。但是,python的生态挺全面,已经有很多牛人实现了数值解法,但是去看他们的代码,还是觉得费劲。此外,随着深度神经网络的兴起,很多是用建立深度学习神经网络,去利用机械臂输入输出的大数据,训练机械臂的控制模型,这个上手也比较慢。

JAMES费的空间 5794

IDEA中的Build Artifacts详解

选中工程,点击“File|Project Structure”菜单,进入工程设置页面如下图: 左侧选中"Artifacts",点击中间上面的“+”号,选中“From modules with dependencies...”如下图:弹出如下窗口:Module下拉框中选中需要打包的Module,Main Class框中选择主类。JAR files from libraries有两个选项:表示将第三方JAR包内容都解压并统一打包到最后生成的JAR包。表示将第三方JAR包内容拷贝到输出目录。 如果你只是希望打包M

puyuiu的博客 7178

c++2048小游戏编写

最近编写了一个小游戏,叫作2048,用到了面向对象的知识。

一个学生的博客 2373

Java项目打包与运行错误排查:从IDEA配置到Maven插件的完整指南

在Java开发中,打包是将源代码、依赖和资源配置整合为可执行交付物的关键环节,其核心原理在于构建工具对项目结构和类路径的管理。理解构建工具如Maven、Gradle的工作原理,以及JAR包中MANIFEST.MF文件的作用,对于确保应用在不同环境下的稳定运行至关重要。这项技术的价值在于实现应用的可移植性和一致性交付,广泛应用于企业级应用部署、微服务架构和持续集成流程。本文聚焦于解决打包后常见的运行错误,例如“找不到主清单属性”和“NoClassDefFoundError”,通过分析IDEA的Artifact

weixin_33696822的博客 439

Silvaco Athena实战:从零搭建MOSFET工艺仿真流程(附mos1ex03完整代码解析)

本文详细介绍了使用Silvaco Athena从零搭建MOSFET工艺仿真的全流程,包括环境配置、核心工艺步骤、器件成型及参数提取等关键环节。通过mos1ex03案例的完整代码解析,帮助读者掌握网格划分、氧化层生长、离子注入等实战技巧,提升半导体工艺仿真能力。

weixin_42648844的博客 406

远距离长航时低成本泡沫垂直起降固定翼无人机技术详解

该技术通过采用泡沫材料制造无人机机体,并结合高效的垂直起降与固定翼飞行机制,实现了低成本、长航时、远距离的飞行能力。然而,需要注意的是,泡沫材料在强度和耐候性方面可能较传统金属材料有所不足,因此在设计和制造过程中需要采取额外的加固和防护措施。用于森林防火、水域监测、空气质量检测等场景,通过搭载相应的传感器和摄像设备,对大范围区域进行高效、精准的监测。- 增强智能化水平:集成更多先进的传感器、算法和人工智能技术,提升无人机的自主决策能力和作业效率。

专注多旋翼、复合翼无人机技术研究,从事低空经济行业。 1201

Java项目打包exe实战指南:从jar到安装包全流程

Java桌面应用交付面临环境依赖、用户门槛高、双击不可用等核心问题,本质是JVM运行时与Windows终端用户习惯之间的鸿沟。通过封装jar为exe,可实现JRE捆绑、启动参数控制与图标签名等工程化交付能力;结合Inno Setup构建专业安装包,进一步支持快捷方式、注册表写入与静默部署。该方案不改变Java字节码本质,而是以启动器模式桥接跨平台语言与本地操作系统,广泛适用于Swing、JavaFX及Spring Boot桌面工具类项目,尤其在企业内部系统、现场运维工具和非技术用户分发场景中具备不可替代的技

weixin_34128839的博客 346

从二体运动到高精度轨道:STK与MATLAB联动的轨道外推算法演进史

本文探讨了轨道外推算法从二体运动到高精度轨道预报(HPOP)的演进历程,重点分析了STK与MATLAB协同仿真环境下的技术实现与应用。通过对比不同算法的精度与适用场景,展示了HPOP在卫星参数优化和轨道设计中的优势,为航天任务规划提供了高效解决方案。

weixin_29082143的博客 700

Java代码复用进阶:IDEA中打Jar包、依赖引用与常见问题排查全攻略

在Java开发中,代码复用是提升工程质量与效率的关键环节。从复制粘贴公共代码带来的“代码漂移”问题出发,理解Jar包作为Zip压缩包与清单文件的基本原理,是掌握模块化构建的基础。通过IDEA的Artifact机制或Maven脚本化构建,可将无状态工具类、通用封装等打包为可复用依赖,并结合Maven坐标、依赖管理解决多项目间的公共逻辑同步问题。实际应用中还需关注JDK版本兼容、资源文件读取路径以及NoClassDefFoundError等经典陷阱。本文以工程实践视角,系统梳理Jar包从生成、引用到排障的完整路

weixin_34347651的博客 396

Kubeflow系统性学习教程:从入门到高级实践

Kubeflow学习教程摘要(150字): Kubeflow是基于Kubernetes的云原生MLOps平台,提供端到端机器学习解决方案。核心功能包括Jupyter Notebooks开发环境、Pipelines工作流编排、分布式训练支持和模型服务部署。教程采用三阶段学习路径:初学者搭建Kind集群体验Notebooks;中级开发自定义Pipeline组件;高级实现企业级应用。通过容器化和K8s CRD深度集成,解决环境一致性、实验跟踪和资源调度等MLOps痛点,相比MLflow/Airflow更适合大规模

自可乐的博客 888

Claude Code 分布式并行开发最佳实践:1中枢+10Worker跨多Git仓库全流程落地

本文介绍了一套基于Claude Code和Git Worktree的分布式并行开发方案,解决多仓库、微服务开发中的核心痛点。方案采用"1个决策中枢+10个并行Worker"架构,中枢负责任务拆解和调度,每个Worker绑定独立仓库实现完全隔离开发。关键优势包括:任务并行效率提升10倍、跨仓库依赖自动编排、版本统一管理、零第三方依赖。文章详细提供了环境准备、架构设计、中枢搭建和初始化脚本等全流程落地指南,特别适合多仓库协同的全栈开发场景。

AI天才研究院 244

Java项目打包成Windows可执行exe的完整工程实践

Java可执行jar包本质上是跨平台字节码,需依赖JRE运行,而Windows终端用户普遍缺乏Java环境与命令行操作能力。将jar封装为exe,核心在于解决环境隔离、启动友好性、分发合规与安装完整性四大问题。技术路径上,exe4j负责Java程序的启动调度与JRE绑定,inno setup则承担标准Windows安装包构建,二者协同实现图标化、静默启动、注册表写入、数字签名及卸载闭环。该方案相比GraalVM原生编译更兼容Spring Boot等主流框架,也优于bat转exe等简易工具,在企业级Java桌

weixin_33937778的博客 290

uniapp APP端:蓝牙报错writeBLECharacteristicValue:fail property not support(uni.writeBLECharacteristicVal)

uni-app 蓝牙fail property not support、发现不了服务特征值的问题、突然发现微信蓝牙小秘密,使用uni-app编译成安卓APP后报错writeBLECharacteristicValue:fail property not support,发现不了服务特征值,uniApp APP调用蓝牙API发送指令过快导致,uniapp 蓝牙 writeBLECharacteristicValue property_not_support iOS Android BLE GATT 特征值写入

✅ 精选推荐文章 2943

no main manifest attribute 报错排查:Java jar 包主清单属性缺失解决方案

在 Java 开发中,使用 java -jar 启动可执行 jar 包是常见的运行方式,但有时会抛出 “no main manifest attribute” 错误。这背后的核心机制是 jar 包内的 META-INF/MANIFEST.MF 文件,它记录了 Main-Class 等关键元信息,JVM 必须靠它定位程序入口。当 MANIFEST.MF 缺失或配置错误时,服务便无法启动。理解 jar 包结构、清单文件作用以及不同打包工具(如 Maven、Spring Boot 插件、IDEA Artifact

weixin_33871366的博客 398

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

exe4j 打包 Java 项目成 exe 完整指南:从 IDEA 到免装 JRE 的实战细节

Java 项目交付时,常因目标环境缺少运行环境而受阻,将程序打包为 Windows 可执行文件成为开发者绕不开的技能。理解 Java 应用的启动机制与 JVM 依赖是前提:可执行文件本质是启动器,运行时仍需定位 JRE 才能加载主类。通过 IDEA 构建可执行 JAR、用 exe4j 配置启动参数、处理控制台窗口与 JRE 搜索路径,即可生成双击运行的 .exe。针对常见的 exe4j 试用弹窗、找不到 JVM、位数不匹配及 DLL 缺失等问题,可依据 JRE 搜索顺序与版本匹配原则快速定位。引入 jlin

weixin_33881140的博客 300

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

IntelliJ IDEA配置Tomcat失败的根源与精准排错

Tomcat是Java Web开发中最基础的Servlet容器,其在IDE中的集成启动涉及JDK兼容性、类加载机制、server.xml动态注入和Artifact部署等核心原理。理解Tomcat的Home-Base分离模型、Catalina生命周期及IDEA对启动流程的代理封装,是解决‘ClassNotFoundException’‘Address already in use’‘Artifact not deployed’等高频问题的关键。技术价值在于规避盲目重装,实现故障定位从日志表象到JVM层、Cat

weixin_34185512的博客 417

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

JavaWeb项目打包部署全流程:war包制作、Tomcat配置与踩坑指南

JavaWeb应用依赖Servlet容器(如Tomcat)提供HTTP通信与请求路由,而war包正是遵循Servlet规范的标准打包格式。理解这一概念,是掌握部署流程的前提。通过Maven构建工具执行clean package命令,可自动完成编译、测试与归档,生成可直接部署的war包。合理选择JDK与Tomcat版本、配置本地仓库镜像,能有效规避编译与依赖下载问题。部署时,将war包放入Tomcat的webapps目录,并由容器自动解压加载。实际工程中,端口冲突、ClassNotFoundException

weixin_33895695的博客 220

Java Web项目打包部署全流程:从IDEA生成WAR到云服务器上线

WAR包是遵循Servlet规范的标准化Web应用归档格式,其核心在于WEB-INF目录结构、类加载路径(classes/lib)与容器运行契约。理解Maven生命周期与IDEA Artifact构建机制的差异,能避免因packaging配置错误、JDK版本不一致或依赖scope误用导致的ClassNotFoundException和404问题。技术价值体现在构建可复现、环境一致、符合生产基线的部署包;典型应用场景包括传统Spring MVC、Servlet/JSP项目在Tomcat上的云服务器交付,以及N

weixin_34032621的博客 347

OcrLiteNcnnJvm 使用指南:Java/Kotlin 通过 JNI 调用 OcrLiteNcnn 实现中文 OCR

OcrLiteNcnnJvm 是 chineseocr_lite 项目下、面向 JVM 生态的官方调用范例工程:它演示了如何用 Java 或 Kotlin 通过 JNI(Java Native Interface)加载 OcrLiteNcnn 动态运行库,在本机完成"超轻量级中文 OCR"推理(dbnet 文本检测 + anglenet 方向检测 + crnn 文字识别,三模型合计约 4.7M)。

gitblog_00480的博客 1041

Maven私服上传jar包全流程:Nexus配置与mvn deploy实战

Maven作为Java项目依赖管理的核心工具,在团队协作中经常面临依赖下载不稳定、内网构建受限等问题。Nexus作为流行的仓库管理平台,通过搭建私服可以实现依赖的统一缓存与内部模块的集中分发,大幅提升构建效率。理解仓库类型(hosted/proxy/group)和Maven配置文件(settings.xml与pom.xml)的职责边界,是掌握私服应用的基础。实际工程中,通过mvn deploy命令将自研模块或第三方jar包发布到Nexus,需要正确配置认证信息和发布地址,并注意release与snapsho

weixin_34054866的博客 332

Spark本地开发环境六步搭建:JDK/Scala/Hadoop/PySpark/IDEA/sbt全链路配置

Apache Spark 是一个基于 JVM 的分布式计算框架,其本地开发环境本质是 Java 生态、Scala 编译体系与 Hadoop 兼容层的精密协同。理解 Spark 运行原理需从 JVM 依赖机制出发——JDK 版本决定类加载兼容性,Scala 版本绑定二进制接口(如 _2.12 后缀),而 Hadoop 并非仅用于分布式存储,更是 Spark 初始化时硬依赖的配置与类库底座。这种强版本耦合性直接决定了开发效率与调试成本。技术价值在于构建可复现、可验证、可回溯的确定性环境,支撑从单机 local

culh2177的博客 615
上一篇: BIEE使用Go Path Navigate带参数访问中文编码的问题
下一篇: 2021-07-07
appleYQL
博客等级 码龄11年 29粉丝 9原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值