Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.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
“线程中的异常”;AWT-EventQueue-0“;在bash上运行arduino时的java.awt.HeadlessException(通过Linux的Windows子系统)_Java_Arduino_Windows Subsystem For Linux - Fatal编程技术网

“线程中的异常”;AWT-EventQueue-0“;在bash上运行arduino时的java.awt.HeadlessException(通过Linux的Windows子系统)

“线程中的异常”;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

我已经运行WSL很短时间了,我一直在尝试通过这个控制台编译和上传Arduino脚本

我通过运行
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)