jar运行发生ClassNotFound的完整解决方案

保姆级YOLOv8改进 | 基于DWRSeg扩张式残差机制的小目标检测优化(附修改后的C2f与Bottleneck模块) DWRSeg机制:通过动态权重调整和扩张卷积有效提升了小目标的检测能力。C2f和Bottleneck模块修改:通过集成DWRSeg模块,增强了特征提取和残差学习能力。实验结果:在多个应用场景中,改进后的YOLOv8展现了更高的检测精度,特别是在小目标检测中表现突出。 阅读详情

原文地址:http://www.java2000.net/viewthread.jsp?tid=6053
转载请注明上述链接或者优快云的链接

1 今天彻底测试了jar程序
TestJar.java
package net.java2000.test.jar;

import javax.swing.JOptionPane;

import org.springframework.beans.factory.BeanFactory;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class TestJar {
  private String message;
  public String getMessage() {
    return message;
  }
  public void setMessage(String message) {
    this.message = message;
  }
  /**
   * @param args
   */
  public static void main(String[] args) {
    BeanFactory beanFactory = new ClassPathXmlApplicationContext(new String[] { "applicationContext.xml" });
    TestJar obj = (TestJar) beanFactory.getBean("TestJar");
    System.out.println(obj.getMessage());
    JOptionPane.showMessageDialog(null, "Jar内容", "Jar标题", JOptionPane.OK_OPTION);
  }
}

applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns:aop="http://www.springframework.org/schema/aop"
  xmlns:tx="http://www.springframework.org/schema/tx"
  xsi:schemaLocation="http://www.springframework.org/schema/beans <A href="http://www.springframework.org/schema/beans/spring-beans-2.0.xsd" target=_blank>http://www.springframework.org/schema/beans/spring-beans-2.0.xsd</A>
            <A href="http://www.springframework.org/schema/aop" target=_blank>http://www.springframework.org/schema/aop</A> <A href="http://www.springframework.org/schema/aop/spring-aop-2.0.xsd" target=_blank>http://www.springframework.org/schema/aop/spring-aop-2.0.xsd</A>
            <A href="http://www.springframework.org/schema/tx" target=_blank>http://www.springframework.org/schema/tx</A> <A href="http://www.springframework.org/schema/tx/spring-tx-2.0.xsd" target=_blank>http://www.springframework.org/schema/tx/spring-tx-2.0.xsd</A>">
  <bean id="TestJar" class="net.java2000.test.jar.TestJar">
    <property name="message">
      <value>Hello World</value>
    </property>
  </bean>
</beans>

2 发现了这个常见的异常
E:/test>java -cp . -jar MyProject.jar
Exception in thread "main" java.lang.NoClassDefFoundError: org/springframework/beans/factory/BeanFactory
Caused by: java.lang.ClassNotFoundException: org.springframework.beans.factory.BeanFactory
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClassInternal(Unknown Source)

3 经查找,发现正确的MANIFEST.MF如下
 
Manifest-Version: 1.0
Main-Class: net.java2000.test.jar.TestJar
Class-Path: spring.jar
 lib/commons-logging-1.1.jar

这里特别说明一下
1)在 Class-Path: 后面有一个空格,切记
2)在 Class-Path: 后面写上你的jar 用空格分开
3)如果需要换行,切记在上一行末尾一定要有一个空格,下一行的开头一定要有一个空格
4)最后一行要是一个空行,否则Eclipse打包时有可能把你的Class-Path 给忽略掉

4 运行效果如下:

5 结论
1)  使用 java -cp 来设置 classpath 对于 jar来说是无效的,因为根据jar的安全规定,其内部的Class-Path 会起作用,外部的会被屏蔽掉(注意是屏蔽掉,不是覆盖掉)
2) Java自身提供了一个设置classpath的方案,那就是使用命令行参数

-Xbootclasspath:      完全取代基本核心的Java class 搜索路径. 
                                    不常用,否则要重新写所有Java 核心class 
-Xbootclasspath/a: 后缀在核心class搜索路径后面.常用!! 
-Xbootclasspath/p: 前缀在核心class搜索路径前面.不常用,避免 
                                    引起不必要的冲突. 

语法如下: 
(分隔符与classpath参数类似,unix使用:号,windows使用;) 
java -Xbootclasspath/a:spring.jar;lib/commons-logging-1.1.jar -jar MyProject.jar 

3)当然,你把jar放到 {Java_home}/jre/lib/ext 这个目录下面也是可以的,应为JVM肯定会搜索这个目录。







<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
【Bug已解决】zsh: command not found: claude 解决方案 方案适用场景推荐指数难度方案一:配置 npm 全局目录所有平台,长期使用⭐⭐⭐⭐⭐低方案二:修复 PATH 变量快速修复,不想改 npm 配置⭐⭐⭐⭐低方案三:重建软链接文件存在但链接断裂⭐⭐⭐中方案四:nvm 专属方案使用 nvm 管理多版本 Node.js⭐⭐⭐⭐低方案五:Windows 专属Windows 系统⭐⭐⭐⭐⭐低方案六:Homebrew 安装macOS 用户,npm 有问题⭐⭐⭐低根本原因。 阅读详情

相关推荐

【全网最新】使用 1panel面板 部署若依系统( springboot 和 vue)项目

打开前端项目的vue.config.js文件,检查devServer下的proxy代理部分,然后将下面这个端口修改为你要在打包后访问的端口,即使用nginx代理前的接口。这个端口默认是80端口,这里把其修改为不会冲突的8010端口,后台接口的地址配置为9080,不过感觉这里设置的8010和9080可能没有用,因为部署前端静态页面是,也配置了一次网页的外部接口和api的接口,后期有空了再验证。打开右侧的Maven,点击:生存期->package,然后点击运行,等待打包成功,包在如图所示的文件夹中。

老薛的专栏 1755

Java Jar 命令

你是否在使用java -jar参数运行打包好的jar应用程序的时候发现应用程序无法找到classpath下设置好的第三方类库的内容?无论怎么设置classpath参数都无济于事,总是会报ClassNotFound的错误?那么本篇帖子可以帮助你摆脱烦恼 :) 当用java -jar yourJarExe.jar来运行一个经过打包的应用程序的时候,你会发现如何设置-classpath参数应用...

BaiDaiCEO的专栏 370

TDDFT计算软件Octopus学习笔记(二):基态计算(Si)

本文以硅为例,来进行基态计算。

陈啸的博客 7306

java.lang.ClassNotFoundException:如何解决

好吧,因为我们将完整的类名更改为org.ph.javaee.training5.ClassB,所以在运行时找不到此类(不存在),从而导致Class.forName()和ClassLoader.loadClass()调用均失败。正在从ClassLoader’sun.misc.Launcher$AppClassLoader@2a340e’加载org.ph.javaee.training5.ClassA类的类…正在创建org.ph.javaee.training5.ClassA的新实例…...

编程不良人 1万+

Vcenter虚拟机磁盘转换实战:如何用StarWind V2V将vmdk转为qcow2(附空间优化技巧)

本文详细介绍了如何使用StarWind V2V Converter将Vcenter中的vmdk虚拟机磁盘高效转换为qcow2格式,并提供了空间优化技巧。从准备工作、导出vmdk文件到转换过程中的性能调优,帮助管理员在迁移虚拟机时减少资源消耗,确保数据完整性和性能。

dell8的博客 202

从ViT到CLIP:OpenAI如何用4亿张图‘教会’AI看懂世界?一次讲透对比学习与Prompt工程

本文深入解析OpenAI的CLIP模型如何通过4亿图文对的对比学习实现跨模态理解,详细探讨了对比学习、数据构建、模型架构及Prompt工程等核心技术。CLIP利用Transformer架构和精心设计的Prompt模板,在Zero-Shot分类、图像检索等场景展现出强大能力,为多模态AI应用开辟新方向。

weixin_27027459的博客 371

解决运行jar包时-java.lang.ClassNotFoundException

我起初以为是没有找到这个类,可能是版本问题,或者是maven常见的丢失打包,于是我换版本、重新编译、clean,package,都没有解决问题,于是我解压了jar包,发现里面除了我写的两个Java类以外什么一个jar包都没有,搞了半个多小时才找到这个问题,是没有打包进去。如果你的是一个springboot项目,应该有所不同,可能是xx.xx.xxApplication(springboot自动生成的 application.java----带有@SpringbootApplication注解的)

ni_e_xin的博客 1460

AUTOSAR E2E Protocol实战:Profile1到Profile5的配置差异与最佳实践

本文深入解析AUTOSAR E2E Protocol中Profile1到Profile5的核心配置差异与适用场景。针对经典CAN、CAN FD及以太网等不同总线,详细对比了计数器、CRC、DataID等关键参数,并结合实战代码与配置示例,为工程师根据功能安全等级、数据长度与带宽限制选择最佳Profile提供了清晰的选型路径与工程实践指南。

milk5的博客 941

Class Not Found 的错误解决

解决某些class not found 的错误,可以采取这种方式: 解决方式是在eclipse编译的class文件的路径中, 将所有的class文件全清了; 清除了之后,让eclipse重新启动,发现没有问题了!! 这种是一种下意识的操作,就像万能的重启一样,但是不建议用eclipse的按钮去操作,而是到classes文件夹下手动清除 ...

天程十八的博客 3万+

快速入门必看!RT-DETR手把手训练自己的数据集去跑实验,基于 ultralytics 仓库源码改进,配置虚拟环境,准备数据集、训练、验证、推理测试 ,实现0到1的完整教学过程。

本文介绍了使用Ultralytics框架训练RT-DETR模型的全流程。首先需要创建Python 3.10虚拟环境,安装指定版本的PyTorch和相关依赖包。然后准备数据集,修改配置文件,并详细介绍训练、验证和推理三个核心步骤的代码实现。训练阶段使用RTDETR类加载模型配置,设置训练参数;验证阶段评估模型性能;推理阶段可对图片、视频等进行预测。文中还提供了清华大学镜像源加速下载,以及详细的参数配置说明,帮助用户快速搭建RT-DETR目标检测模型。

Ai缝合怪、助力小伙伴高效发论文 5550

YOLOv9改进,YOLOv9添加CBAM注意力机制

CBAM是一个简单而有效的注意力模块,用于前馈卷积神经网络。给定一个中间特征图,我们的模块按顺序推断两个独立维度(通道和空间)的注意力图,然后将注意力图乘以输入特征图以进行自适应特征细化。由于 CBAM 是一个轻量级的通用模块,因此它可以无缝集成到任何 CNN 架构中,开销可以忽略不计,并且可以与基础 CNN 一起进行端到端训练。论文链接:(CBAM论文)

在职AI算法工程师,擅长计算机视觉,YOLO目标检测、分割等,擅长web、pyqt界面可视化,好内容持续更新中,来这里跟大家一起学习,共同进步 856

java -jar 报错,classnotfound

打包可执行jar包时,MANIFEST.MF总是个让人头疼的东西,经常出现这种那种问题。  一个例子:  ================================================================================  Manifest-Version: 1.0  Main-Class: test.Main  Class-Path: ./

BrotherDong90的专栏 2710

系规备考论文:论IT服务规划设计

系规备考论文:论IT服务规划设计

liuxu324的博客 1144

jar 运行发生ClassNotFound的完整解决方案

原文地址:http://www.java2000.net/viewthread.jsp?tid=6053 博客地址:http://blog.youkuaiyun.com/java2000_net/archive/2008/06/08/2522408.aspx 1 今天彻底测试了jar程序 TestJar.java Java code <!--Code highlighting produced b

rain的专栏 982

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

(转载)### jar 运行发生ClassNotFound的完整解决方案

原文地址:http://www.java2000.net/viewthread.jsp?tid=6053 博客地址:http://blog.youkuaiyun.com/java2000_net/archive/2008/06/08/2522408.aspx 1 今天彻底测试了jar程序 TestJar.java Java codepackage net.java2000.test.jar;i

yumegn的专栏 528

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

idea本地运行正常,打包发布的服务器之后,报ClassNotFound,

遇到一次大坑,idea本地运行正常,打包发布的服务器之后,就报ClassNotFound, 排查了很久,发现的确是少了jar包,而且少了很多。复制了几个jar包上去都没用。 究其原因: 1:依赖时scope配置错误,如使用了runtime 参考:https://www.cnblogs.com/qingdaofu/p/7396010.html 2.idea本身设置的问题 file->proje...

qq_43566496的博客 3112

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

Eclipse 替换jar出现ClassNotFound问题

遇见两次这个问题了,一替换引用的jar包,再次运行时就会出现ClassNotFound的错误,先声明我已将jar包放在libs文件夹下面并且configure build path了,引用时也能进行引用,感觉很奇怪,原理我也不太清楚只能说下怎么解决了。 解决方法: 选中你的项目右击——》点Build path——》选择Configure build path——》Order and Explor

danfengw的博客 1135

MapReduce 运行时报ClassNotFound 时的解决方法

直接进入正题了 MapReduce程序报ClassNotFound的错误如何解决。如果你也遇到了这个问题可以按照下面方法解决 1、运行程序就报ClassNotFound ,日志里面没有MapReduce程序运行的任何信息 这就是job时的异常。 解决:首先本地的Classpath中要存在对应的Jar包 也就是必须要能够运行Job 提交任务 当...

weixin_34174422的博客 1509

Linux执行Jar包出现ClassNotFound、“main”找不到主类

在Linux虚拟机系统执行jar包的过程中,经常会出现类似ClassNotFound等类似的错误,无法完成jar包的运行,根据经验,总结几点如下,便于自己记忆,后期查看,仅供参考。 1.主要原因:大多数是因为出现jar包冲突,导致无法确认主类。 解决办法:在集成环境中执行  mvn Dverbose dependency:tree  ,在控制台中出现的omitted for conflict ...

XXoo12301230的博客 7475

eclipse已经导入jar包了,但还是出现classNotFound异常

场景:分析-eclipse已经导入jar包了,但还是出现classNotFound异常 分析--eclipse已经导入jar包了,但还是出现classNotFound错误 最近在做一个web项目时,由于需要导入jar包,就直接在build path下导入了jar包,并且在java类中也直接通过import也能导入使用,并且单独运行一个java的main类可以正常运行,但是在运行了w

u010523770的专栏 1万+

Jar包的正确运行方法

-jar参数运行应用时classpath的设置方法 你是否在使用java -jar参数运行打包好的jar应用程序的时候发现应用程序无法找到classpath下设置好的第三方类库的内容?无论怎么设置classpath参数都无济于事,总是会报ClassNotFound的错误?那么本篇帖子可以帮助你摆脱烦恼 ???? 当用java -jar yourJarExe.jar来运行一个经过打包的应用程序的时候,你会发现如何设置-classpath参数应用程序都找不到相应的第三方类,报ClassNotFound错误

shayukaifa的博客 3319

-jar参数运行应用时classpath的解决方案

<br />  <br />当用java -jar yourJarExe.jar来运行一个经过打包的应用程序的时候,你会发现如何设置-classpath参数应用程序都找不到相应的第三方类,报ClassNotFound错误。实际上这是由于当使用-jar参数运行的时候,java VM会屏蔽所有的外部classpath,而只以本身yourJarExe.jar的内部class作为类的寻找范围。<br />**解决方案**<br />一 BootStrap class扩展方案<br />Java 命令行提供了如何扩

fjun0910的专栏 1084

idea war包手动引入jar 运行时报ClassNotFound错误

idea war包手动引入jar 运行时报ClassNotFound错误

黄猿帅的博客 827

maven管理jar包后依然找不到Jar包或者ClassNotFound的解决

https://www.iteye.com/blog/liyunpeng-1965600 Caused by: org.springframework.beans.factory.CannotLoadBeanClassException: Cannot find class [com.github.pagehelper.PageInterceptor] for bean with name ‘...

海天与晨钟 1311
上一篇: JAVA的精华是什么
下一篇: 使用 ServerSocketChannel 实现的 File 服务器
老紫竹
博客等级 码龄19年 1万+粉丝 1252原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值