在 Ubuntu 中运行 MATLAB 安装脚本时,出现以下异常:
Exception in thread "main" java.lang.NoClassDefFoundError: Could not initialize class java.awt.Component
更长的输出可用here
我知道这是一个 Java 问题,可以通过更改类路径或类似的东西来解决,但我不完全知道如何。
有任何想法吗?
对我来说,当我在系统上安装 JRE 时,此错误已修复:
apt-get install default-jre
在 Ubuntu 12.04 上,而不是让 MATLAB 使用它自己的。
我整个晚上都在与这个问题作斗争,但我偶然发现了一个至少对我有用的解决方案。
在尝试使用静默安装程序进行安装后,我得到了一个不同的错误,并提供了更多信息。结果发现缺少一个库(libXtst.so.6)。我能够在我的 Ubuntu 系统上安装它:
apt-get install libxtst6
之后我尝试运行 GUI 安装程序(通过 X 转发),看起来它现在可以工作了。
对于 MATLAB R2012a 学生版,在 Ubuntu 14.04 中,我必须先安装这些先决条件:
sudo apt-get install default-jre libxtst6:i386 libXext6:i386 libxi6:i386 libncurses5:i386 libxt6:i386 libxpm4:i386 libxmu6:i386 libxp6:i386
接下来,我按照 MATLAB 的说明 ( ) 安装/激活sudo ./install
。当安装程序要求在 /usr/local/bin/ 中添加符号链接时,我回答“是”
最后,在启动 MATLAB 时,我必须指定它以 32 位模式运行:
matlab -glnx86
我从这个答案中组装了这些步骤:https ://askubuntu.com/questions/363878/how-to-install-32-bit-matlab-in-ubuntu-64-bit
和 Ubuntu MATLAB 指南: https ://help.ubuntu.com/community/MATLAB
我不想每次启动 MATLAB 时都输入 -glnx86 选项,因此我将 /usr/local/bin/ 中的 matlab 符号链接替换为自动指定 -glnx86 选项的脚本:
ls -l /usr/local/bin/matlab #note the destination of the symbolic link
sudo mv /usr/local/bin/matlab /usr/local/bin/matlab.bak
#ensure the first path below matches your symbolic link's destination
echo '/usr/local/MATLAB/R2012a_Student/bin/matlab -glnx86 "$@"' | sudo tee /usr/local/bin/matlab
sudo chmod +x /usr/local/bin/matlab
有了它,我可以输入“matlab”并正确启动。("$@"
脚本中的 将所有输入参数转发给 matlab。)可能有一种更优雅的方式来完成此操作,但它确实有效。
我还在 matlab 启动时遇到了“/lib/libc.so.6: not found”错误,我按照这个答案修复了这个错误。
安装 gnome (sudo apt-get install gnome) 为我解决了这个问题。我敢肯定这完全是矫枉过正,但是现在可以使用所需的库。