【发布时间】:2013-07-26 13:21:24
【问题描述】:
我创建了一个 Java 应用程序(一个 JAR),它将动态编译在 JAR 中实现接口的外部 Java 源代码。为了方便用户,我按照solution 将 JAR 文件转换为可执行文件,但遇到与加载 JAR 相关的错误:
cannot read zip file entry
我了解 JAR 已嵌入到可执行文件中,那么动态编译时有什么方法可以正确加载(或自解压)它?
【问题讨论】:
我创建了一个 Java 应用程序(一个 JAR),它将动态编译在 JAR 中实现接口的外部 Java 源代码。为了方便用户,我按照solution 将 JAR 文件转换为可执行文件,但遇到与加载 JAR 相关的错误:
cannot read zip file entry
我了解 JAR 已嵌入到可执行文件中,那么动态编译时有什么方法可以正确加载(或自解压)它?
【问题讨论】:
从您提供的链接中可以看出,可执行文件 (hello.run) 由脚本 (stub.sh) 和 jar (helloworld.jar) 组成。
您可以从可执行文件中提取 JAR 部分。读取可执行文件,跳过前 n 个字节,其中 n 是脚本的大小,然后将剩余字节保存在 tmp 文件中。 tmp 文件就是你的 jar。
【讨论】: