2017-03-02 70 views
0

我注意到我无法在不关闭IDE /命令行的情况下两次部署带有javapackager的JavaFX应用程序。我想在Windows 10机器上创建我的应用程序的本机映像。Javapackager第二次部署IOException

第二次部署后,我得到异常: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上重现此错误吗? 是否有解决方法或官方错误报告?

在此先感谢 乔伊

回答

1

这是一个已知的问题,原因是文件句柄泄漏,并已得到了由我报道:https://bugs.openjdk.java.net/browse/JDK-8148717只有Windows专用的,因为在JRE的文件锁定-folder在Windows系统上工作,其他操作系统不锁定。

这个bug在JavaFX-Gradle-Plugin中得到了解决,因为gradle启动守护进程,这会阻塞JVM,所以JavaFX-Maven-Plugin不需要它,因为JVM总是关闭的。

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

+0

很高兴知道。谢谢:) – Joey

+0

感谢您的错误。我已经增加了优先权。 –

+0

@ChrisBensen感谢这:)我不得不在javafx-gradle-plugin中讨厌monkeypatch类,但无法提供一个不错的重现器 – FibreFoX