• java -jar 执行jar包出现 java.lang.NoClassDefFoundError


    我用idea工具将自己开发java程序打成一个可执行的jar包,当然用eclipse或者直接用jar命令行都无所谓,本质都是将程序归档到一个压缩包,并附带一个说明清单文件。

    打jar的操作其实很简单,网上很多资料,即使出错工具也都会有提示,而执行打包好的jar就很容易出现一些小问题,这些小问题往往就是jar包中清单文件书写一些小细节引起的。

      比如我在标题提到的执行jar包抛出 java.lang.NoClassDefFoundError 异常,找不到某某包下的类,这时候不用看,就是清单文件中的classpath书写的问题:

     classpath有如下容易忽略的问题:

     (1) 不能有空行和空格的地方    第一行不可以是空行( 第一行的行前不可以有空行),行与行之间不能有空行,第行的行尾不可以有空格

      (2) 一定要有空行的地方 最后一行得是空行(在输完你的内容后加一个回车就OK)

      (3) 一定有空格的地方

    等等。这些其实用第三方工具(非jdk自带)都不会有问题,而本人则遇到一个问题,是想在这里特别说明的,本人参照网上帖子,用idea打jar包,第三方的jar通通放入lib文件夹中,这时候,清单文件的classpath所对应的jar包就必须加上“lib”前缀,而问题就在这里,他写成libxxx-xx.jar执行jar包时候就出现了标题中java.lang.NoClassDefFoundError异常。本人反复和对打包清单文件,怼了一晚上才爬出坑,需要用"/"符号 ,所classpath应该是lib/xxx-xx.jar

  • 相关阅读:
    对vulnhub靶机lampiao的getshell到脏牛提权获取flag
    ssrf漏洞利用(内网探测、打redis)
    NC反弹shell的几种方法
    CTF长久练习平台
    Binder进程与线程ProcessState以及IPCThreadState
    Binder的Native实现libbinder
    Android 静态广播和动态广播接收顺序
    Android的Surface的创建
    android dialog,popupwindow,toast窗口的添加机制
    Android在WindowManagerService和ActivityManagerService中的Token
  • 原文地址:https://www.cnblogs.com/xuzimian/p/7599304.html
Copyright © 2020-2023  润新知