Stm32cubemx_v6-1-1 提示需要JDK8版本,但已经安装JDK11 exe4j
官网下载地址: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();
}
}
--------蓝天上的云_转载请注明出处.