我用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\”前缀,而问题就在这里,他写成lib\xxx-xx.jar执行jar包时候就出现了标题中java.lang.NoClassDefFoundError异常。本人反复和对打包清单文件,怼了一晚上才爬出坑,需要用"/"符号 ,所classpath应该是lib/xxx-xx.jar

java -jar 执行jar包出现 java.lang.NoClassDefFoundError的更多相关文章

  1. IntelliJ IDEA导出Java 可执行Jar包

    原文:IntelliJ IDEA导出Java 可执行Jar包 保证自己的Java代码是没有问题的,在IDEA里面是可以正常运行的,然后,按下面步骤: 打开File -> Project Stru ...

  2. eclipse生成【带有外部jar包】的java可执行jar包

    之前有写过一篇使用eclipse生成java可执行jar包,但是最近的一次使用中无论如何都不成功,当双击执行打成的jar时,弹出如下错误: could not find the main class: ...

  3. SpringBoot小技巧:修改java可执行jar包内容

    SpringBoot小技巧:修改java可执行jar包内容 情景描述 在生产环境中,有时候我们发现了个小bug,开发迅速修改代码后,很多时候我们不得不重新发布一个新的可执行jar包上去替换掉.但是这样 ...

  4. Java:执行jar文件命令

    Java:执行jar文件命令 执行jar文件命令: java -jar test.jar win7系统切换目录命令: cd /d d:/test

  5. IntelliJ IDEA导出Java 可执行Jar包

    extends:http://blog.sina.com.cn/s/blog_3fe961ae0102uy42.html 保证自己的Java代码是没有问题的,在IDEA里面是可以正常运行的,然后,按下 ...

  6. java命令执行jar包的方式

    http://www.cnblogs.com/adolfmc/archive/2012/10/07/2713562.html 大家都知道一个java应用项目可以打包成一个jar,当然你必须指定一个拥有 ...

  7. 运行java可执行jar包

    导出与导入:如果要用别的项目的类, 把对方类export出成jar包(多个类的集合),然后复制到自己项目路径下然后添加至构建路径,jar包右键buildpath/addtobuildpath.expo ...

  8. java -cp 执行jar包里的某个类

    当我们需要测试某个功能时,需要在linux环境下执行某个类的main方法来测试 可以使用java -cp xxx.jar com.MyClass来执行某个类 java -cp test.jar:lib ...

  9. Java 可执行jar的manifest编写

    Eclipse:形式, 选中项目右键 命令行形式: 1.编写Java类 2.命令行指定到项目/src文件夹,编译 3.编写manifest文件 4.目录重新定位到bin/classes编译文件目录下, ...

随机推荐

  1. FMX取得屏分辨率

    procedure Tfrm_Main.FormCreate(Sender: TObject); var ScreenSvc: IFMXScreenService; Size: TPointF; be ...

  2. Day15作业及默写

    1.整理今天内容 PASS 2.现有列表alist = [3,1,-4,2,-6] 按照元素的绝对值大小进行排序 alist = [3,1,-4,2,-6] sorted(alist,key=lamb ...

  3. KB/MB/GB。。单位换算

    今天遇到一个需求,需要把数据单位进行换算,记录一下.写的不好请勿见怪. function bytesToSize( bytes ) {//单位转化         var k = 1024,      ...

  4. 如何在VMware中安装Linux系统

    这篇文章主要讲述如何在VMware12中安装RHEL6.9Linux操作系统 步骤一: 打开VMware软件,在主页中点击创建新的虚拟机或者点击左上角文件,在列表中点击新建虚拟机,如图: 步骤二: 点 ...

  5. 使用U盘安装Ubuntu系统

    -----------------------note by shanql-------------------------- 注:在windows下可用EasyBCD安装引导文件来引导Ubuntu( ...

  6. canvas默认是黑色全透明,不是白色全透明。

  7. centos7 安装mysql--python模块出现EnvironmentError: mysql_config not found和error: command 'gcc' failed with exit status 1

    要想使python可以操作mysql 就需要MySQL-python驱动,它是python 操作mysql必不可少的模块. 下载地址:https://pypi.python.org/pypi/MySQ ...

  8. jQuery的位置信息

    <head> <meta charset="UTF-8"> <title>jquery的位置信息</title> <style ...

  9. [LeetCode&Python] Problem 292. Nim Game

    You are playing the following Nim Game with your friend: There is a heap of stones on the table, eac ...

  10. 使用vendor管理go第三方包

    安装verdor go get -u -v https://github.com/kardianos/govendor 记得将$GOPATH/bin加入PATH verdor使用 goverdor i ...