我正在尝试在装有 OpenJDK 的 Windows 10 计算机上运行 Freemind 1.0.1。当我尝试从“开始”菜单启动它或尝试.mm
在文件资源管理器中打开文件时,我收到一条错误消息,提示
此应用程序需要 Java 运行时环境 1.5.0。
在这两种情况下,Windows 都可能会尝试运行C:\Program Files (x86)\FreeMind\FreeMind.exe
(直接启动它会产生相同的结果)。同一文件夹中还有一个批处理文件Freemind.bat
,可成功启动 Freemind。
我正在运行 OpenJDK 13.0.2,并且java.exe
处于默认状态PATH
。
有没有办法让 EXE 包装器与 OpenJDK 13 完美兼容?或者这是一个硬编码到二进制文件中的错误?
答案1
根据您安装的 JDK 以这种方式更改注册表,然后 freemind.exe 就可以工作了。在我的情况下,缺少“Java 运行时环境”的密钥。我从现有的 JDK 信息中添加了版本信息。
注册表路径:
[HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment\11]
注册表项:
"JavaHome"="C:\\Program Files\\Eclipse Adoptium\\jdk-11.0.14.101-hotspot\\"
答案2
我在使用 openjdk 15 时遇到了同样的问题,但发现我可以使用“C:\Program Files (x86)\FreeMind\Freemind。蝙蝠“成功地。
这是我所做的:
我修改了开始菜单中的启动器以使用“C:\Program Files (x86)\FreeMind\Freemind。蝙蝠“而不是“C:\Program Files (x86)\FreeMind\Freemind。EXE文件“
为了解决仍然链接到 exe 的文件关联问题,我以管理员身份打开了注册表编辑器 (regedit.exe),并修改了 HKEY_CLASSES_ROOT\Freemind\shell\open\command “C:\Program 文件(x86)\FreeMind\freemind。EXE文件““%1” 至“C:\Program 文件(x86)\FreeMind\freemind。蝙蝠“%1”
这freemind.bat 使用相对路径因此从其他位置启动将不起作用:我还编辑了 Freemind.bat 文件,在第二行插入以下内容:cd“C:\Program Files (x86)\FreeMind”,.bat 文件如下所示
@echo off
cd "C:\Program Files (x86)\FreeMind"
java -Xmx256M -Xss8M -cp lib\freemind.jar;lib\commons-lang-2.0.jar;lib\forms-1.0.5.jar;lib\jibx\jibx-run.jar;lib\jibx\xpp3.jar;lib\bindings.jar;lib\xalan.jar;lib\serializer.jar;lib\xml-apis.jar;lib\xercesImpl.jar;lib\jortho.jar freemind.main.FreeMindStarter
这 3 个步骤对我来说很有效,希望这会有用
答案3
补充一点 - 我和其他人一样在运行 Freemind 时遇到了问题。
我使用 .bat 文件,但通过添加以下内容调用:-Djava.security.manager=allow
所以就像...
java -Djava.security.manager=allow -Xmx256M -Xss8M -cp lib\freemind.jar;lib\commons-lang-2.0.jar;lib\forms-1.0.5.jar;lib\jibx\jibx-run.jar;lib\jibx\xpp3.jar;lib\bindings.jar;lib\xalan.jar;lib\serializer.jar;lib\xml-apis.jar;lib\xercesImpl.jar;lib\jortho.jar freemind.main.FreeMindStarter
注:感谢 judovana 于https://github.com/stefanbirkner/system-rules/issues/85 和https://openjdk.org/jeps/411