官網下載地址:https://www.st.com/zh/development-tools/stm32cubemx.html#get-software
分析
這是個exe4j打包的程序,所以可以直接通過 java -jar 執行
也可以用壓縮軟件打開(如7zip Bandizip)
相同案例:Logisim 打不開的解決方案(Windows10)
解決方案
定位到exe安裝包所在目錄
cd /d D:\0Download\en.stm32cubemx_v6-1-1
執行安裝程序
java -jar SetupSTM32CubeMX-6.1.1.exe
打開已經安裝的 STM32CubeMX (可做成bat腳本)
start /min javaw -jar "C:\Program Files\STMicroelectronics\STM32Cube\STM32CubeMX\STM32CubeMX.exe"
這也是java+exe4j打包的exe可以在Linux/Windows/MacOS平臺運行的原因。
提取方法
Windows雙擊打開該exe,保持界面不關閉,
一般在C:\當前用戶名\AppData\Local\Temp
下的 .jar (直接用EveryThing搜索.jar也可以)
其他提取方法(未測試,可能可用可能不可用)
- 重命名爲jar
只針對使用exe4j特定模式打包的 - 使用程序進行文件流提取、
參考該帖(新版exe4j已失效):從exe4j生成的exe中抽取jar文件-BlogJava
代碼
import java.io.*;
import java.util.*;
public class gen {
public static void main(String args[]) throws IOException {
FileInputStream fin = new FileInputStream(args[0]); // 可以將整個exe文件解碼
FileOutputStream fout = new FileOutputStream(args[1]);
BufferedInputStream bin = new BufferedInputStream(fin);
BufferedOutputStream bout = new BufferedOutputStream(fout);
int in = 0;
do {
in = bin.read();
if (in == -1)
break;
in ^= 0x88;
bout.write(in);
} while (true);
bin.close();
fin.close();
bout.close();
fout.close();
}
}