我正在接管这个家伙的应用程序,他几乎没有给我留下任何东西,甚至连编码都没有注释。幸运的是(还有一点时间),我能够改进该应用程序并使其在我的计算机上正常运行。
但是我遇到了一个问题,这很烦人并且阻止我升级应用程序。我的应用程序可以在安装了 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 文件(实际上是命令行)运行来创建一堆报告文件和文件夹。
最佳答案
您已将哪个 JavaFX 版本附加到您的应用程序? 我怀疑附加的 JavaFX 版本与 1.7.0_60 不兼容。我对此也有一些同样的问题。 但这个异常(exception)对我来说是新的(它是一些内部棱镜的东西)
关于从 java 7u21 迁移到更高版本时,Javafx 应用程序无法启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24607455/