我正在接管这个应用程序,他几乎没有留下任何东西,即使编码没有评论。幸运的是(还有一点时间),我能够改进应用程序并使其在我的计算机上像魅力一样运行。
但是我遇到了一个问题,这很烦人并阻止我升级应用程序。我的应用程序可以在安装了java版本1.7.0_21的任何机器上正常运行,但是当我更新到更新的版本(现在它是1.7.0_60)时,应用程序无法运行,它只是一直有这个愚蠢的错误,我不能做什么都可以解决它。
以下是错误日志:
RenderJob.run: internal exception
java.lang.UnsatisfiedLinkError: com.sun.prism.d3d.D3DContext.nSetBlendEnabled(JZ
Z)I
at com.sun.prism.d3d.D3DContext.nSetBlendEnabled(Native Method)
at com.sun.prism.d3d.D3DContext.initState(D3DContext.java:84)
at com.sun.prism.d3d.D3DResourceFactory.<init>(D3DResourceFactory.java:5
7)
at com.sun.prism.d3d.D3DPipeline.createResourceFactory(D3DPipeline.java:
150)
at com.sun.prism.d3d.D3DPipeline.getD3DResourceFactory(D3DPipeline.java:
156)
at com.sun.prism.d3d.D3DPipeline.findDefaultResourceFactory(D3DPipeline.
java:182)
at com.sun.prism.d3d.D3DPipeline.getDefaultResourceFactory(D3DPipeline.j
ava:204)
at com.sun.prism.GraphicsPipeline.getDefaultResourceFactory(GraphicsPipe
line.java:97)
at com.sun.javafx.tk.quantum.QuantumRenderer$3.run(QuantumRenderer.java:
143)
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
at java.util.concurrent.FutureTask.runAndReset(Unknown Source)
at com.sun.prism.render.RenderJob.run(RenderJob.java:37)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.run(Quantu
mRenderer.java:98)
at java.lang.Thread.run(Unknown Source)
我发现了另一个类似的问题 Unable to deploy JavaFX applicaiton with external libraries in a JAR 但是我不能在我的情况下应用它,因为这个程序/框架需要从.bat文件(实际上是命令行)运行来创建一堆报告文件和文件夹。
答案 0 :(得分:2)
您附加到应用程序的JavaFX版本是什么? 我怀疑附加的JavaFX版本与1.7.0_60不兼容。我有同样的问题。 但这个例外对我来说是新的(它有一些内部棱镜的东西)
答案 1 :(得分:0)
根据我的经验,JFXRT jar紧密耦合到它捆绑的JRE / JDK version.update(在oracles jvm的情况下)。这意味着应用程序需要在jvm version.update上运行,因为它是从中提取的。您应该能够使用在此处找到的规定的构建方法http://docs.oracle.com/javafx/2/deployment/packaging.htm来解决此问题。