“线程中的异常”;AWT-EventQueue-0“;在bash上运行arduino时的java.awt.HeadlessException(通过Linux的Windows子系统)
我已经运行WSL很短时间了,我一直在尝试通过这个控制台编译和上传Arduino脚本 我通过运行“线程中的异常”;AWT-EventQueue-0“;在bash上运行arduino时的java.awt.HeadlessException(通过Linux的Windows子系统),java,arduino,windows-subsystem-for-linux,Java,Arduino,Windows Subsystem For Linux,我已经运行WSL很短时间了,我一直在尝试通过这个控制台编译和上传Arduino脚本 我通过运行sudo apt install arduino安装了arduino,但是每当我运行任何arduino命令时(即使只是arduino),我都会得到以下异常 我尝试过通过这个命令行安装LinuxArduinoIDE,但没有效果。我的假设是,这是一个源自WSL和arduino的问题,而不是针对该环境设计的 Exception in thread "AWT-EventQueue-0" java.awt.Hea
sudo apt install arduino
安装了arduino,但是每当我运行任何arduino命令时(即使只是arduino
),我都会得到以下异常
我尝试过通过这个命令行安装LinuxArduinoIDE,但没有效果。我的假设是,这是一个源自WSL和arduino的问题,而不是针对该环境设计的
Exception in thread "AWT-EventQueue-0" java.awt.HeadlessException:
No X11 DISPLAY variable was set, but this program performed an operation which requires it.
at java.awt.GraphicsEnvironment.checkHeadless(GraphicsEnvironment.java:204)
at java.awt.Window.<init>(Window.java:536)
at java.awt.Frame.<init>(Frame.java:420)
at java.awt.Frame.<init>(Frame.java:385)
at javax.swing.JFrame.<init>(JFrame.java:189)
at arduinopc.<init>(arduinopc.java:35)
at arduinopc$3.run(arduinopc.java:85)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:726)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
Exception in thread "main" java.lang.ExceptionInInitializerError
at processing.app.Preferences.setColor(Preferences.java:851)
at processing.app.Preferences.init(Preferences.java:273)
at processing.app.Base.main(Base.java:117)
Caused by: java.awt.HeadlessException:
No X11 DISPLAY variable was set, but this program performed an operation which requires it.
at sun.awt.HeadlessToolkit.getMenuShortcutKeyMask(HeadlessToolkit.java:236)
at processing.core.PApplet.<clinit>(Unknown Source)
... 3 more
线程“AWT-EventQueue-0”java.AWT.HeadlessException中的异常:
未设置X11显示变量,但此程序执行了需要该变量的操作。
位于java.awt.GraphicsEnvironment.checkHeadless(GraphicsEnvironment.java:204)
在java.awt.Window(Window.java:536)
在java.awt.Frame.(Frame.java:420)
在java.awt.Frame.(Frame.java:385)
在javax.swing.JFrame。(JFrame.java:189)
在arduinopc。(arduinopc.java:35)
在arduinopc$3.run(arduinopc.java:85)
在java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)中
位于java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)
在java.awt.EventQueue.access$500(EventQueue.java:97)
在java.awt.EventQueue$3.run(EventQueue.java:709)
在java.awt.EventQueue$3.run(EventQueue.java:703)
位于java.security.AccessController.doPrivileged(本机方法)
位于java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
位于java.awt.EventQueue.dispatchEvent(EventQueue.java:726)
位于java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
在java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)中
位于java.awt.EventDispatchThread.PumpeEventsforHierarchy(EventDispatchThread.java:105)
位于java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
位于java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
在java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
线程“main”java.lang.ExceptionInInitializeError中出现异常
位于processing.app.Preferences.setColor(Preferences.java:851)
位于processing.app.Preferences.init(Preferences.java:273)
at processing.app.Base.main(Base.java:117)
原因:java.awt.HeadlessException:
未设置X11显示变量,但此程序执行了需要该变量的操作。
位于sun.awt.HeadlessToolkit.getMenuShortcutKeyMask(HeadlessToolkit.java:236)
at processing.core.PApplet.(未知源)
... 3个以上
你说得对。Windows Linux子系统仅用于命令行应用程序,不用于运行GUI应用程序 一个相对简单的替代方法是获取VirtualBox或QEmu for Windows,并启动/安装一个小型linux发行版 如果您只想运行Arduino IDE,那么您也不需要它,因为它也可用于Windows:
你是对的。Windows Linux子系统仅用于命令行应用程序,不用于运行GUI应用程序 一个相对简单的替代方法是获取VirtualBox或QEmu for Windows,并启动/安装一个小型linux发行版 如果您只想运行Arduino IDE,那么您也不需要它,因为它也可用于Windows:
Arduino IDE通常用作GUI,WLS不支持它,因此会显示错误消息:
No X11 DISPLAY variable was set, but this program performed an operation which requires it.
但是,Arduino IDE的命令行操作是在Arduino IDE 1.5.2中添加的,它允许从控制台执行许多操作(请参阅)。最初,这需要运行虚拟帧缓冲区,但在ArduinoIDE的最后几个版本中不再需要
我通过运行sudo apt install arduino安装了arduino
当您这样做时,您会得到一个非常过时的、可能是非标准的ArduinoIDE版本,它不支持命令行使用。由于许可文档的原因,无法通过软件包管理器更新Arduino IDE的版本。您应该始终通过从下载最新版本来安装Arduino IDE。完成后,您将能够使用命令行功能。Arduino IDE通常用作GUI,WLS不支持它,因此会显示错误消息:
No X11 DISPLAY variable was set, but this program performed an operation which requires it.
但是,Arduino IDE的命令行操作是在Arduino IDE 1.5.2中添加的,它允许从控制台执行许多操作(请参阅)。最初,这需要运行虚拟帧缓冲区,但在ArduinoIDE的最后几个版本中不再需要
我通过运行sudo apt install arduino安装了arduino
当您这样做时,您会得到一个非常过时的、可能是非标准的ArduinoIDE版本,它不支持命令行使用。由于许可文档的原因,无法通过软件包管理器更新Arduino IDE的版本。您应该始终通过从下载最新版本来安装Arduino IDE。完成此操作后,您将能够使用命令行功能。使用OpenJDK时也会出现此异常。 我将java从OpenJDK更改为java(TM),应用程序正在毫无例外地运行
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.161-0.b14.el7_4.x86_64/jre/bin/java -version
openjdk version "1.8.0_161"
OpenJDK Runtime Environment (build 1.8.0_161-b14)
OpenJDK 64-Bit Server VM (build 25.161-b14, mixed mode)
/usr/java/jdk1.8.0_162/jre/bin/java -version
java version "1.8.0_162"
Java(TM) SE Runtime Environment (build 1.8.0_162-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.162-b12, mixed mode)
使用OpenJDK时也会发生此异常。 我将java从OpenJDK更改为java(TM),应用程序正在毫无例外地运行
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.161-0.b14.el7_4.x86_64/jre/bin/java -version
openjdk version "1.8.0_161"
OpenJDK Runtime Environment (build 1.8.0_161-b14)
OpenJDK 64-Bit Server VM (build 25.161-b14, mixed mode)
/usr/java/jdk1.8.0_162/jre/bin/java -version
java version "1.8.0_162"
Java(TM) SE Runtime Environment (build 1.8.0_162-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.162-b12, mixed mode)