【问题标题】:Javapackager deploy IOException on second timeJavapackager第二次部署IOException
【发布时间】:2017-03-02 16:07:26
【问题描述】:

我注意到如果不关闭 IDE/命令行,我无法使用 javapackager 部署 JavaFX 应用程序两次。我想在 Windows 10 机器上创建我的应用程序的本机映像。

第二次部署后我得到异常:java.io.IOException: Access denied。关闭并重新打开后,它再次适用于一次部署。

我可以在具有 Oracle JDK 8u121 和 Windows 10 的 3 台不同 PC 上使用 Netbeans 重现此问题(创建 JavaFX 应用程序,启用本机打包,然后打包为“仅映像”)。 我在 eclipse 的一个 gradle 项目中也遇到了这个错误,试图用官方的 ant 任务部署它(https://docs.oracle.com/javase/8/docs/technotes/guides/deploy/javafx_ant_tasks.html

还在 Ubuntu VM 和 OpenJDK 上进行了尝试。没有问题。

你们中的任何人也可以在 Windows 10 上重现此错误吗? 是否有解决方法或官方错误报告?

提前致谢 乔伊

【问题讨论】:

    标签: java netbeans javafx ant javapackager


    【解决方案1】:

    这是一个已知问题,原因是文件句柄泄漏,我已经报告了:https://bugs.openjdk.java.net/browse/JDK-8148717 这只是 Windows 特定的,因为 JRE 文件夹上的文件锁定适用于 Windows 系统,其他操作系统不锁定。

    这个错误在 JavaFX-Gradle-Plugin 中得到了解决,因为 gradle 启动了守护进程,它支撑着 JVM,JavaFX-Maven-Plugin 不需要它,因为 JVM 总是关闭的。

    免责声明:我是 JavaFX-Gradle-Plugin 的创建者和 JavaFX-Maven-Plugin 的维护者。

    【讨论】:

    • 感谢这个错误。我提高了优先级。
    • @ChrisBensen 对此表示感谢 :) 我不得不在 javafx-gradle-plugin 中对类进行讨厌的猴子补丁,但无法提供一个好的复制器
    • 我只是看着它,它让我想起了另一个错误。我将其标记为重复,因为它已在 JDK 9 中修复。我不确定它是否会被反向移植到 JDK 8。
    猜你喜欢
    • 1970-01-01
    • 2019-08-05
    • 1970-01-01
    • 2012-03-25
    • 1970-01-01
    • 1970-01-01
    • 2019-04-23
    • 1970-01-01
    • 2021-06-06
    相关资源
    最近更新 更多