首页 > 解决方案 > 在 Manjaro Linux 上运行 Java 程序

问题描述

我正在用 OPCAT 试验简单的系统工程模型。我知道有更新的云版本,但它不允许共享和保存模型,所以我坚持使用旧的 OPCAT。

它是一个 java 应用程序,在 Windows 机器上运行它使用

java -Xmx1024m -Dopcat.home="%APPDATA%\Opcat" -Dopcat.source="C:\Program Files (x86)\Opcat\Opcat.Structure" -jar "C:\Program Files (x86)\Opcat\Opcat2.jar"

按照该逻辑,我将终端输入转换为

java -Xmx1024m -Dopcat.home="/home/dh/opcat" -Dopcat.source="/home/dh/opcat/Opcat.Structure" -jar ~/opcat/Opcat2.jar

不幸的是我得到了错误(选择,实际输出更长):

log4j:ERROR setFile(null,true) 调用失败。java.io.FileNotFoundException:线程“main”中的 opcat-log.xml 异常 java.lang.NoClassDefFoundError:sun/misc/BASE64Decoder

我尝试了 java-15-openjdk 和 java-16-jdk,结果总是一样。网络搜索问题导致我设置了不同的 CLASSPATH,但没有任何效果。

那里有很多文本导致 Java 开发的兔子洞,但我根本没有能力深入研究它们。我真的希望我能为这个问题找到一个简单的解决方案,因为我是流程工程师,与软件开发人员相差甚远(我很遗憾)。

我正在使用 manjaro linux,可以在此处找到 OPCAT jar 文件:http://esml.iem.technion.ac.il/opcat-installation/ 最后一个要点)。我尝试了“如何在 MAC 上安装 OPCAT”-帮助文件,但并不幸运。

我不知道在这里会发生什么,也许您可​​以指出正确的方向。谢谢..

标签: javalinuxnoclassdeffounderrorfilenotfoundexception

解决方案


你有一个旧版本的 OPCAT,它是用旧版本的 Java 开发的。Oracle 使用 Java 9 删除了该类sun.misc.BASE64Decoder,因此您需要 Java 8 才能运行它。

我强烈建议使用SDKMAN来管理系统上不同版本的 SDK。


推荐阅读