我们正在尝试用 exe4j 将我们的 jar 文件包装到 exe 文件中。我们的 jar 依赖于存储在 libs 文件夹中的几个 jar 库。我们不想分发 jar 文件,只分发 libs 文件夹中的 exe 和 jar 库。为了执行应用程序,我们使用自己的 JRE。
这是应用程序的文件结构:
/java
/libs
application.exe
在项目类型中,我们使用“Jar in exe mode”选项。生成了 exe,但执行失败。在errors.log中我可以看到,java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory 如果我将slf4j.jar添加到类路径,生成的exe更大,并且error.log文件中还有另一个NoClassDefFoundError。
如果我尝试“常规模式”并使用外部库指定文件夹 - 应用程序运行良好。但是“Jar in exe mode”无法访问指定文件夹。
有没有办法让 exe 包装 jar 文件,并使用存储在外部 libs 文件夹中的 jar 库,而无需手动指定它们并将它们打包到 exe 中?