gpt4 book ai didi

ubuntu - WSL 2 : java. lang.UnsupportedOperationException 中的 JavaFX 错误:无法打开显示

转载 作者:行者123 更新时间:2023-12-04 19:28:04 26 4
gpt4 key购买 nike

我刚刚从 Ubuntu 20.04 发行版切换回带有集成 WSL 2 的 Windows,并且在运行我的 JavaFX 项目时遇到了问题。
我在 launch(args) 周围收到以下错误堆栈跟踪里面 main方法 :

hexaquarks@LAPTOP-KPPA3O52:~/Particle_Geometry_Simulation$  cd /home/hexaquarks/Particle_Geometry_Simulation ; /usr/bin/env /usr/lib/jvm/java-11-openjdk-amd64/bin/java --module-path /usr/share/openjfx/lib --add-modules javafx.controls,javafx.fxml,javafx.swing -Dfile.encoding=UTF-8 @/tmp/cp_eiv0idm2cbh7kd2tl4ddw7ff7.argfile AppFrame 
Exception in thread "main" java.lang.reflect.InvocationTargetException
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at java.base/sun.launcher.LauncherHelper$FXHelper.main(LauncherHelper.java:1051)
Caused by: java.lang.UnsupportedOperationException: Unable to open DISPLAY
at javafx.graphics/com.sun.glass.ui.gtk.GtkApplication.lambda$new$6(GtkApplication.java:173)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at javafx.graphics/com.sun.glass.ui.gtk.GtkApplication.<init>(GtkApplication.java:171)
at javafx.graphics/com.sun.glass.ui.gtk.GtkPlatformFactory.createApplication(GtkPlatformFactory.java:41)
at javafx.graphics/com.sun.glass.ui.Application.run(Application.java:144)
at javafx.graphics/com.sun.javafx.tk.quantum.QuantumToolkit.startup(QuantumToolkit.java:258)
at javafx.graphics/com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:269)
at javafx.graphics/com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:158)
at javafx.graphics/com.sun.javafx.application.LauncherImpl.startToolkit(LauncherImpl.java:658)
at javafx.graphics/com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(LauncherImpl.java:409)
at javafx.graphics/com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:363)
... 5 more
系统配置
$ java -version
openjdk version "11.0.11" 2021-04-20 OpenJDK Runtime Environment (build 11.0.11+9-Ubuntu-0ubuntu2.20.04)
OpenJDK 64-Bit Server VM (build 11.0.11+9-Ubuntu-0ubuntu2.20.04, mixed mode, sharing)

$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=20.04
DISTRIB_CODENAME=focal
DISTRIB_DESCRIPTION="Ubuntu 20.04.3 LTS"

$ java -version
openjdk version "11.0.11" 2021-04-20
OpenJDK Runtime Environment (build 11.0.11+9-Ubuntu-0ubuntu2.20.04)
OpenJDK 64-Bit Server VM (build 11.0.11+9-Ubuntu-0ubuntu2.20.04, mixed mode, sharing)
项目树
$ [.../Particle_Geometry_Simulator] tree
.
├── .vscode
| ├── launch.json
| └── settings.json
├── bin
└── src
├── AppFrame.java
├── ... // f files here
└── ParticleFunJavaFx.fxml
启动.json
{
"version": "0.2.0",
"configurations": [
{
"type": "java",
"name": "Launch AppFrame",
"request": "launch",
"vmArgs": "--module-path /usr/share/openjfx/lib --add-modules javafx.controls,javafx.fxml,javafx.swing",
"mainClass": "AppFrame",
"projectName": "Particle_Geometry_Simulation_4f401646"
},
{
"type": "java",
"name": "Launch Current File",
"request": "launch",
"mainClass": "${file}"
},
{
"type": "java",
"name": "Launch GameFrame",
"request": "launch",
"vmArgs": "--module-path /usr/share/openjfx/lib --add-modules javafx.controls,javafx.fxml,javafx.swing",
"mainClass": "GameFrame",
"projectName": "Particle_Geometry_Simulation_4f401646"
}
]
}
设置.json
{
"java.project.sourcePaths": ["src"],
"java.project.outputPath": "bin",
"java.project.referencedLibraries": [
"lib/**/*.jar",
"/usr/share/openjfx/lib/javafx-swt.jar",
"/usr/share/openjfx/lib/javafx.media.jar",
"/usr/share/openjfx/lib/javafx.web.jar",
"/usr/share/openjfx/lib/javafx.graphics.jar",
"/usr/share/openjfx/lib/javafx.fxml.jar",
"/usr/share/openjfx/lib/javafx.controls.jar",
"/usr/share/openjfx/lib/javafx.base.jar",
"/usr/share/openjfx/lib/javafx.swing.jar"
]
}

我尝试过的事情
我查看了关于这个问题的几乎所有关于 SO 的帖子,但没有成功。
sudo apt install libgtk-3-0
不是修复,因为我已经安装了这个。
我也试过删除 openjfx并从不同的镜像重新安装它,但没有成功。目前我拥有的软件包,我已经安装了它
sudo apt install openjfx
有谁知道这里可能发生了什么?

最佳答案

找到了答案
我的 WSL 2 开箱即用无法运行图形应用程序。
例如运行

$ xclock
在 shell 中返回了一个错误,因为 DISPLAY变量未设置,X11 未安装,也不允许跨防火墙。
循序渐进 this guide解决了我的问题

关于ubuntu - WSL 2 : java. lang.UnsupportedOperationException 中的 JavaFX 错误:无法打开显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69171337/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com