java - 应用程序在 Intellij 中运行良好,但打包成 exe 文件时无法运行
问题描述
我使用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 中执行时运行良好。我尝试通过查看与这些类似的答案来添加我创建的自定义 jar 文件,但它似乎没有帮助。我也尝试更改执行文件夹,但这也不能解决错误。
解决方案
推荐阅读
- java - 不可变(纯函数)上下文中的 UnsupportedOperationException 与 IllegalStateException
- amazon-web-services - 客户端无法使用 Symmetric DS 在 AWS 上托管的服务器上注册
- python - matplotlib 坏了吗?
- filter - 如何获得边缘以及我在 Cytoscape.js 中过滤的节点?
- javascript - 像 placeit.net 这样的网站如何在图像上添加图像和文本
- amazon-web-services - 如何使用经过训练的 AWS 模型执行实时对象检测
- ubuntu - tk.h 在 /usr/include 中查找 tcl.h,但 tcl.h 在 /usr/include/tcl 中。我没有编写 tk.h 权限来修复代码
- mysql - Mysql 终端实例很好,但 MySQL Workbench 没有连接到数据库
- crc - 在 16 字节短消息上使用 CRC32
- asp.net-mvc - 实现区域时如何使用 VS Core 更改 ASP.NET 核心项目的 MVC 项目文件路径