求助:macOS 运行 JavaFX 工具报错

0 阅读1分钟

macos在运行jar文件时崩溃

第一次写社区文章,听闻社区里有很多技术精湛的师傅,遂二月红前来求助🙏

问题是这样的,在运行jar文件时软件爆出以下错误

❯ java -jar shiro_attack-4.7.0-SNAPSHOT-all.jar
Picked up _JAVA_OPTIONS: -XX:+UnlockExperimentalVMOptions
Exception in thread "JavaFX Application Thread" java.lang.IllegalArgumentException: Both width and height must be >= 0
	at javafx.geometry.Rectangle2D.<init>(Rectangle2D.java:104)
	at javafx.stage.Screen.nativeToScreen(Screen.java:154)
	at javafx.stage.Screen.updateConfiguration(Screen.java:112)
	at javafx.stage.Screen.checkDirty(Screen.java:87)
	at javafx.stage.Screen.getPrimary(Screen.java:185)
	at com.sun.javafx.tk.quantum.QuantumToolkit.initSceneGraph(QuantumToolkit.java:320)
	at com.sun.javafx.tk.quantum.QuantumToolkit.runToolkit(QuantumToolkit.java:362)
	at com.sun.javafx.tk.quantum.QuantumToolkit.lambda$startup$10(QuantumToolkit.java:279)
	at com.sun.glass.ui.Application.lambda$run$1(Application.java:156)
	at com.sun.glass.ui.mac.MacApplication.lambda$runLoop$3(MacApplication.java:90)

这里问ai给出的回答是:JavaFX 应用在 macOS 系统上启动时,无法正确获取屏幕的尺寸信息,导致传入了无效的宽高(0 或负数),从而引发崩溃,导致了ui界面无法打开

主要报错是这一条"JavaFX Application Thread" java.lang.IllegalArgumentException: Both width and height must be >= 0

image.png

其实之前是没有爆过这个错误的,是在外接了显示屏后图像处理错误,高版本的java是移除了javafx,需要单独下载这个插件,我现在使用的是最后一个带javafx版本的java,1.8.481

❯ java -version
java version "1.8.0_481"
Java(TM) SE Runtime Environment (build 1.8.0_481-b10)
Java HotSpot(TM) 64-Bit Server VM (build 25.481-b10, mixed mode)

在此之前尝试了ai给出的建议,但都无果

  • 1.重启
  • 2.调分辨率
  • 3.使用命令强行指定屏幕尺寸
  • 4.切换java版本,使用带有javafx的更高版本

如果有师傅处理过相关问题的话还望不吝赐教🙏

不胜感激🙏🙏🙏