问题描述
我使用 picocli 构建了一个非常简单的命令行应用程序,我想将它打包成一个可执行文件。我首先使用 Maven 包将它打包成一个 jar
文件,然后按照 SO 上几个用户的推荐使用 Launch4J 来获取可执行文件。但是,当我在命令提示符下运行 Application.exe
时,它会引发 NoClassDefFound 错误。
> Exception in thread "main" java.lang.NoClassDefFoundError:
> picocli/CommandLine
> at mycli.HelloCli.main(HelloCli.java:48)
> Caused by: java.lang.classNotFoundException: picocli.CommandLine
> 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)
> ... 1 more
在 IntelliJ 中执行时,应用程序运行良好。我尝试通过查看类似于 these 的答案添加我创建的自定义 jar 文件,但它似乎没有帮助。我也尝试更改执行文件夹,但这也不能解决错误。