目前,我尝试在我的 Ubuntu 10.04(32 位)计算机上安装 Arduino。我下载了最新版本http://arduino.cc/en/Main/Software,进入目录并解压包。当我尝试运行 ./arduino 时,出现以下错误:
Exception in thread "main" java.lang.ExceptionInInitializerError
at processing.app.Base.main(Base.java:112)
Caused by: java.awt.HeadlessException
at sun.awt.HeadlessToolkit.getMenuShortcutKeyMask(HeadlessToolkit.java:231)
at processing.core.PApplet.<clinit>(Unknown Source)
... 1 more
这是我的 java -version 输出:
java version "1.6.0_20"
OpenJDK Runtime Environment (IcedTea6 1.9.5) (6b20-1.9.5-0ubuntu1~10.04.1)
OpenJDK Server VM (build 19.0-b09, mixed mode)
对此有什么建议吗?我尝试安装没有“arduino”包的 arduino。
我尝试使用 apt-get ( sudo apt-get install arduino
) 来安装它。
当我尝试启动 arduino(使用arduino
命令)时会导致以下错误:
Exception in thread "main" java.lang.ExceptionInInitializerError
at processing.app.Preferences.load(Preferences.java:553)
at processing.app.Preferences.load(Preferences.java:549)
at processing.app.Preferences.init(Preferences.java:142)
at processing.app.Base.main(Base.java:188)
Caused by: java.awt.HeadlessException
at sun.awt.HeadlessToolkit.getMenuShortcutKeyMask(HeadlessToolkit.java:231)
at processing.core.PApplet.<clinit>(PApplet.java:224)
... 4 more
更新: 我发现我安装了多个版本的jre(sun和open)。所以我卸载了open jre。
现在,当我调用时,arduino
我收到一个新错误:
java.lang.UnsatisfiedLinkError: no rxtxSerial in java.library.path thrown while loading gnu.io.RXTXCommDriver
Exception in thread "main" java.lang.UnsatisfiedLinkError: no rxtxSerial in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1734)
at java.lang.Runtime.loadLibrary0(Runtime.java:823)
at java.lang.System.loadLibrary(System.java:1028)
at gnu.io.CommPortIdentifier.<clinit>(CommPortIdentifier.java:123)
at processing.app.Editor.populateSerialMenu(Editor.java:965)
at processing.app.Editor.buildToolsMenu(Editor.java:717)
at processing.app.Editor.buildMenuBar(Editor.java:502)
at processing.app.Editor.<init>(Editor.java:194)
at processing.app.Base.handleOpen(Base.java:698)
at processing.app.Base.handleOpen(Base.java:663)
at processing.app.Base.handleNew(Base.java:578)
at processing.app.Base.<init>(Base.java:318)
at processing.app.Base.main(Base.java:207)
答案1
这是通过复制librxtxParallel.so
并解决librxtxSerial.so
的/usr/lib/
到此帖子中的详细信息http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1238062036/all
答案2
默认情况下,Ubuntu 中使用的 Java 版本(在 11.10 中仍然如此)是 OpenJDK。您可以使用以下命令检查正在使用的 Java 版本
java -version
在命令行中。Ubuntu 中有两个 OpenJDK 软件包,openjdk-6-jre
和openjdk-6-jre-headless
。无头版本适用于没有 GUI 的计算机。您安装了无头版本,当 arduino 程序尝试创建 GUI 元素时会导致此错误。
要解决此问题,请安装非无头版本。它将接管无头版本,并且 arduino IDE 将启动。
apt-get install openjdk-6-jre
当你从存储库安装 arduino 时,这个依赖关系应该已经为你处理好了。我为此提出了一个错误(错误条目)
答案3
我在使用 apt-get 安装 arduino 后也遇到了这个问题,详情请见http://playground.arduino.cc//Linux/Ubuntu
我发现解决方案是使用以下方法将我的 JDK 运行时从 7 切换到 6
sudo update-alternatives --config java
答案4
答案已被移动,但在 StackOverflow 上找不到。无论如何,为了让其他人知道,一个可能的解决方案(对我有用)是添加
-Djava.awt.headless=true
作为 Arduino 脚本的 java 调用中的选项。
希望能帮助到你