我在 Ubuntu 18.04.3 LTS 中安装了 STM32CubeProgrammer,目的是解决错误当我尝试在 STM32WB55 Nucleo Pack 中刷新微控制器时出现此问题,但 STM32CubeProgrammer 在安装后并未启动。
当我点击启动器中的图标时没有任何反应,并且我没有找到任何用于启动该程序的可执行文件。我该怎么办?
答案1
STM32CubeProgrammer 1.2.1 节中的说明软件描述对我有用。
我安装的是 openjdk-8
sudo apt install openjdk-8-jre-headless
我将选定的 java-8 设置为我的默认运行时引擎
sudo update-alternatives --config java
并安装以下软件包
sudo apt purge openjfx
sudo apt install openjfx=8u161-b12-1ubuntu2 libopenjfx-jni=8u161-b12-1ubuntu2 libopenjfx-java=8u161-b12-1ubuntu2
sudo apt-mark hold openjfx libopenjfx-jni libopenjfx-java
然后我像之前一样安装了 STM32CubeProgrammer
sudo ./SetupSTM32CubeProgrammer-2.2.1.linux
安装程序的最后一页提到了程序文件的路径。以下路径现在指向我系统上的程序文件
/usr/local/STMicroelectronics/STM32Cube/STM32CubeProgrammer/
可以使用以下方式启动该程序
sudo /usr/local/STMicroelectronics/STM32Cube/STM32CubeProgrammer/bin/./STM32CubeProgrammer
答案2
这里提到的其他解决方案在 Ubuntu20.04 上对我来说不起作用。
据 ST 论坛上的一位用户称(来源),JDK8兼容版本的openjfx不适用于Focal Fossa。
这个 StackOverflow 问题描述了一个简单有效的解决方案。
为了解决这个问题,您可以安装包含 JavaFX 的 OpenJDK 版本。
我安装了利比里亚(确保选择完整的 JDK)运行
sudo dpkg -i /path/to/bellsoft-jdk8u275+1-linux-amd64-full.deb
这将安装 JDK 并更新替代方案。(无需运行sudo update-alternatives --config java
)
对我来说,这就是让 CubeProgrammer 工作所需要做的一切
答案3
我已经在 Ubuntu 20.04 + openjdk 11.0.10 上运行了这个
如果你从 CLI 运行 STM32CubeProgrammer,你就会得到问题的线索
./STM32CubeProgrammer
Error: Could not find or load main class com.st.app.Main
Caused by: java.lang.NoClassDefFoundError: javafx/application/Application
因此,令人烦恼的是,javafx 不再与 java 9+ 一起打包
因此,解决方法是要么找到一个较旧的 Java,要么:
- 下载javafx并解压到文件夹
- 更新 STM32CubeProgrammer 脚本 vi $(which STM32CubeProgrammer)
#!/bin/bash
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
export LD_LIBRARY_PATH=$DIR/../lib:$LD_LIBRARY_PATH
export PATH_TO_FX=/home/williao/tools/javafx-sdk-11.0.2/lib
java --module-path $PATH_TO_FX:$PATH_TO_FX/lib --add-modules javafx.controls,javafx.fxml,javafx.web -jar $DIR/STM32CubeProgrammerLauncher
不要忘记更改 PATH_TO_FX!!!!
答案4
我在寻找如何修复 Debian 中的安装程序时找到了这个网站。这对我有用。
$ sudo java -jar SetupSTM32CubeProgrammer-2.8.0.exe