运行 Java Manjaro 上的程序 Linux

Running Java Program on Manjaro Linux

我正在为简单的系统工程模型试验 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) call failed. java.io.FileNotFoundException: opcat-log.xml Exception in thread "main" 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”-帮助文件,但并不幸运。

我不知道这里会发生什么,也许你能指出正确的方向。谢谢..

你有一个旧版本的 OPCAT,它是用旧版本 Java 开发的。 Oracle 删除了 class sun.misc.BASE64Decoder 和 Java 9,所以你需要 Java 8 到 运行 它。

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