【问题标题】:Dynamical compilation error in exe-wrapped JARexe 包装的 JAR 中的动态编译错误
【发布时间】:2013-07-26 13:21:24
【问题描述】:

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

cannot read zip file entry

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

【问题讨论】:

    标签: java jar


    【解决方案1】:

    从您提供的链接中可以看出,可执行文件 (hello.run) 由脚本 (stub.sh) 和 jar (helloworld.jar) 组成。

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

    【讨论】:

    • 我认为您的解决方案是可行的。但是为了避免代码复杂,我决定制作一个安装程序,它将 JAR 和可执行文件复制到一个目录,所以可执行文件执行命令作业,而 JAR 执行编译作业。
    猜你喜欢
    • 2012-04-15
    • 1970-01-01
    • 2014-06-01
    • 2011-03-27
    • 2018-12-14
    • 1970-01-01
    • 2012-09-28
    • 2017-06-01
    • 1970-01-01
    相关资源
    最近更新 更多