1    发现了这个常见的异常 
E:\test>java -cp . -jar x.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)
2    经查找,发现正确的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 给忽略掉

3   结论 
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肯定会搜索这个目录

linux 下运行 jar包 java.lang.ClassNotFoundException: 解决办法相关推荐

  1. eclipse打包jar发布到linux下运行出错(java.lang.ClassNotFoundException: cmd.WordCount$MyMapper )

    今天在eclipse写一个mapreduce计数例子,打包成jar放到linux下通过hadoop命令运行时出现如下错误: 小小的纠结了一下,检查了一下代码原来是漏写了一个打包的设置: //打成jar ...

  2. linux下运行jar包命令

    本人第一次给安卓的朋友做了迷你级别app的后台,但是一关xshell程序就终止了,因此将搜刮到的资料分享出来 阅览目录 linux下运行jar包的命令 详细介绍第三种方式 linux下的nohup命令 ...

  3. linux下运行jar包

    linux下运行jar包 一. java -jar kafka_data.jar 基本jar包执行方式.当用Ctrl+c中断或者关闭Xshell窗口时,程序也会中断执行. 二. java -jar k ...

  4. Java命令 在Linux下运行jar包

    一.如果java定义了jar包的main class入口,则使用如下命令 $ java -jar my.jar 其中使用maven pom文件配置如下 <!--编译打包插件--> < ...

  5. Linux下运行jar包的方法

      当我们使用SpringBoot的方式开发好了我们的应用,放到我们的Linux服务器上准备上线,首先想到的可能就是通过 java -jar xxx.jar 的方式来运行我们的jar包,程序运行正常, ...

  6. Windows/Linux下引用jar包,并用javac/java编译运行

    Windows/Linux下引用jar包,并用javac/java编译运行,有需要的朋友可以参考下. 1> Windows 假设要引用的jar放在D:/test目录下,名字为t1.jar, ja ...

  7. 在Linux服务器运行jar包并一直处于后台执行

    在Linux服务器运行jar包并一直处于后台执行: 一.一般情况 jar包在linux的目录为 /jarmanager/xxx.jar 使用在/jarmanager目录下使用 java -jar xx ...

  8. java.lang.classnotfoundexception解决方法

    java.lang.classnotfoundexception解决方法 参考文章: (1)java.lang.classnotfoundexception解决方法 (2)https://www.cn ...

  9. springboot依赖lib外置打成压缩包,以及snapshot依赖jar包ClassNotFoundExcepttion异常的解决办法

    springboot依赖lib外置打成压缩包,以及snapshot依赖jar包ClassNotFoundExcepttion异常的解决办法 mvn插件 assembly压缩zip assembly.x ...

最新文章

  1. Linux下JDK环境的配置
  2. 每日一皮:即使是个小BUG,有时候也能吓你半条命!
  3. bitMap保存图片
  4. Flutter 完美的验证码输入框(2 种方法)
  5. 《刻意练习》到底讲了些什么???
  6. sinh_带有Python示例的math.sinh()方法
  7. 中英文对照 —— 宗教
  8. Ethereum Casper 101
  9. JAVA酒店管理系统
  10. matlab fft2 fftshift,matlab fft fftshift
  11. [ZT]大型企业局域网安全解决方案
  12. 开源代码检测FOSSID
  13. 【机房报修管理系统】1.简介篇 机房报修管理系统简介
  14. 微信投票python脚本_微信刷票Python脚本教程
  15. LearnGL - 05 - Texture
  16. 【电子数据取证】8个门道儿
  17. 什么是数据类型?数据类型有什么用?
  18. 小猫爪:i.MX RT1050学习笔记7-Power Supply
  19. Shell语言基本语法总结(4)正则表达式与文本处理之grep
  20. Nokia手机工程命令

热门文章

  1. 利用POI 技术动态替换word模板内容
  2. 模拟Windows任务管理器CPU使用率的动态折线图-农夫山泉
  3. QT 创建鼠标右键菜单
  4. 网站的安全登录认证设计
  5. Arm 架构下的中断
  6. GitHub:攻击者正在利用被盗 OAuth 令牌攻击数十家组织机构
  7. Palo Alto Networks 支持仪表盘漏洞泄露数千份客户支持工单
  8. 大疆等无人机在倾斜摄影作业时 如何进行仿地飞行
  9. DPM 2012 R2恢复Exchange 2013单用户邮箱
  10. Android 自定义相机