Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法在windows 8.1上运行javafx应用程序_Java_Windows_Javafx - Fatal编程技术网

无法在windows 8.1上运行javafx应用程序

无法在windows 8.1上运行javafx应用程序,java,windows,javafx,Java,Windows,Javafx,我使用intellij idea制作了一个javafx桌面应用程序,并按照链接中给出的方式进行了打包。它在我的装有Windows7的电脑上运行良好。但在windows 8.1上运行时,会出现以下异常: java.lang.NullPointerException at com.sun.prism.impl.ps.BaseShaderContext.validatePaintOp(Unknown Sourc e) at com.sun.prism.impl.ps.B

我使用intellij idea制作了一个javafx桌面应用程序,并按照链接中给出的方式进行了打包。它在我的装有Windows7的电脑上运行良好。但在windows 8.1上运行时,会出现以下异常:

java.lang.NullPointerException
        at com.sun.prism.impl.ps.BaseShaderContext.validatePaintOp(Unknown Sourc
e)
        at com.sun.prism.impl.ps.BaseShaderContext.validatePaintOp(Unknown Sourc
e)
        at com.sun.prism.impl.ps.BaseShaderGraphics.renderGeneralRoundedPgram(Un
known Source)
        at com.sun.prism.impl.ps.BaseShaderGraphics.renderGeneralRoundedRect(Unk
nown Source)
        at com.sun.prism.impl.ps.BaseShaderGraphics.fillRect(Unknown Source)
        at com.sun.javafx.sg.prism.NGRegion.paintTiles(Unknown Source)
        at com.sun.javafx.sg.prism.NGRegion.renderContent(Unknown Source)
        at com.sun.javafx.sg.prism.NGNode.doRender(Unknown Source)
        at com.sun.javafx.sg.prism.NGNode.doRender(Unknown Source)
        at com.sun.javafx.sg.BaseNode.render(Unknown Source)
        at com.sun.javafx.tk.quantum.ViewPainter.doPaint(Unknown Source)
        at com.sun.javafx.tk.quantum.AbstractPainter.paintImpl(Unknown Source)
        at com.sun.javafx.tk.quantum.PresentingPainter.run(Unknown Source)
        at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
        at java.util.concurrent.FutureTask.runAndReset(Unknown Source)
        at com.sun.prism.render.RenderJob.run(Unknown Source)
        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(Unknow
n Source)
        at java.lang.Thread.run(Unknown Source)
java.lang.NullPointerException
        at com.sun.prism.impl.BaseResourceFactory.clearTextureCache(Unknown Sour
ce)
        at com.sun.prism.impl.BaseResourceFactory.getCachedTexture(Unknown Sourc
e)
        at com.sun.prism.impl.BaseResourceFactory.getCachedTexture(Unknown Sourc
e)
        at com.sun.prism.impl.ps.BaseShaderContext.validatePaintOp(Unknown Sourc
e)
        at com.sun.prism.impl.ps.BaseShaderContext.validatePaintOp(Unknown Sourc
e)
        at com.sun.prism.impl.ps.BaseShaderGraphics.renderGeneralRoundedPgram(Un
known Source)
        at com.sun.prism.impl.ps.BaseShaderGraphics.renderGeneralRoundedRect(Unk
nown Source)
        at com.sun.prism.impl.ps.BaseShaderGraphics.fillRect(Unknown Source)
        at com.sun.javafx.sg.prism.NGRegion.paintTiles(Unknown Source)
        at com.sun.javafx.sg.prism.NGRegion.renderContent(Unknown Source)
        at com.sun.javafx.sg.prism.NGNode.doRender(Unknown Source)
        at com.sun.javafx.sg.prism.NGNode.doRender(Unknown Source)
        at com.sun.javafx.sg.BaseNode.render(Unknown Source)
        at com.sun.javafx.tk.quantum.ViewPainter.doPaint(Unknown Source)
        at com.sun.javafx.tk.quantum.AbstractPainter.paintImpl(Unknown Source)
        at com.sun.javafx.tk.quantum.PresentingPainter.run(Unknown Source)
        at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
        at java.util.concurrent.FutureTask.runAndReset(Unknown Source)
        at com.sun.prism.render.RenderJob.run(Unknown Source)
        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(Unknow
n Source)
        at java.lang.Thread.run(Unknown Source)
那么javafx在Windows8上不起作用了吗?我不认为它在任何地方都是这样的。毕竟它是一个典型的java应用程序,所以如果我们安装了jre,它应该可以工作

解决这个问题的办法是什么

编辑:

这里有一些奇怪的现象:


使用intellij idea 12.0.4构建的工件在windows 8上也运行良好。但是当通过intellij idea 13.0.1构建时,会出现错误。

Win 7上安装了哪个版本的Java,Win 8.1上安装了哪个版本?JRE 7的更新是什么?@brano在Win 8.1 PC上,update 60和我的Win 7 PC上,我不确定(可能是24),但我的Win 7 PC上cmd上的Java版本会给出1.7.0我认为这是一个问题。当我将
JRE
更新到1.7.0_40或45时,我也遇到了同样的异常。尝试在Win 8.1上安装JRE 8。但在此之前,请尝试将
jfxrt.jar
依赖项(位于jre7\lib或jre7\lib\ext文件夹中)包含在1.7.0_17(您的工作JRE)的项目中。祝你好运。一定要试试Java8,这个问题看起来像是一个纹理管理问题(JavaFX无法在Win8机器上分配图形纹理),JavaFX中的纹理管理在Java8中得到了很大的改进。我不建议将jfxrt.jar打包到您的项目中。如果Java 8仍然存在问题,它包括一个。