1

我创建了一个 Java 应用程序(一个 JAR),它将动态编译在 JAR 中实现接口的外部 Java 源代码。为了方便用户,我按照此解决方案将 JAR 文件转换为可执行文件,但遇到与加载 JAR 相关的错误:

cannot read zip file entry

我知道 JAR 已嵌入到可执行文件中,那么在动态编译时有什么方法可以正确加载(或自解压)它?

4

1 回答 1

1

正如我从您提供的链接中看到的那样,可执行文件 (hello.run) 由脚本 (stub.sh) 和 jar (helloworld.jar) 组成。

您可以从可执行文件中提取 JAR 部分。读取可执行文件,跳过前 n 个字节,其中 n 是脚本的大小,然后将剩余字节保存在 tmp 文件中。tmp 文件是你的 jar。

于 2013-07-26T13:27:57.897 回答