IDEA编译生成可运行jar包 和 运行jar包报java.lang.NoClassDefFoundError错误,注意 MF文件目录不要用默认目录,改成项目根目录
运行环境:
操作系统:ubuntu20.04
java version:
openjdk version "11" 2018-09-25
OpenJDK Runtime Environment 18.9 (build 11+28)
OpenJDK 64-Bit Server VM 18.9 (build 11+28, mixed mode)
jetbrain-idea: 20200301
idea生成可运行的jar包
1. 首先通过idea创建java项目,并保证可运行。
2. 右击左边项目目录,在弹出界面选择Open Module Settings
3. 再在弹出窗口中选择左侧Artifacts,点击“+”号,弹出窗口中选择JAR-->From modules with dependencies。
注意:因为你生成的jar包可能依赖其他jar包或库。
4. 配置包含main函数类和生成jar包的MF目录,配置完点击OK按钮就行。注意:MF文件目录不要用默认目录,使用默认,我的生成jar就出错了,无法运行。
5. 最后配置完的样子,最后别忘了在下边界面点击“OK按钮”确认
6. 配置完毕后,需要编译,编译步骤如下图:
最后就可以到jar生成目录看到所生成的jar包了
生成的可执行jar在输出目录里。使用:java -jar *.jar命令执行jar包程序。
运行jar包报java.lang.NoClassDefFoundError错误
当我们再修改java程序时,并且添加了新的依赖包,那么我们需要到配置生成jar包的界面,添加这个新的依赖,如下图,如果不添加。jar编译没有问题,但是运行jar包时,会报错:ava.lang.NoClassDefFoundError