我们正在尝试用exe4j包装jar文件到exe文件。我们的jar依赖于存储在libs文件夹中的几个jar库。我们不想分发jar文件,只想在libs文件夹中分配exe和jar库。对于应用程序的执行,我们使用自己的JRE。
以下是应用程序的文件结构:
/java
/libs
application.exe在项目类型中,我们使用"Jar In exe模式“选项。已生成Exe,但其执行失败。在errors.log中,我可以看到,如果将java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory添加到类路径中,生成的exe会更大,并且error.log文件中还有另一个NoClassDefFoundError。
如果我尝试“常规模式”并使用外部库指定文件夹-应用程序运行良好。但是指定文件夹对于"Jar in exe模式“是不可访问的。
有没有办法让exe包装jar文件,并使用存储在外部libs文件夹中的jar库,而无需手动指定它们并将它们打包到exe中?
发布于 2020-02-17 16:08:32
我们不想分发jar文件,只想在libs文件夹中分发exe和jar库。
生成的可执行文件中的JAR文件不以任何方式受到保护,因为当可执行文件启动时,它将被解压到%TEMP%目录中。这就是为什么您可以使用常规模式并将JAR文件放在lib目录中。
若要保护JAR文件,请使用像proguard这样的模糊处理程序。
https://stackoverflow.com/questions/60261434
复制相似问题