如何用最新的JavaLTS11运行老式的java程序?

iqjalb3h  于 2021-07-05  发布在  Java
关注(0)|答案(2)|浏览(377)

我想运行西门子标志软舒适。

dell@dell-Precision-M6400:~/Hämtningar/Logo 6.1/Linux/tools/Application$ ./LOGOComfort 
Unrecognized option: -Xincgc
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
dell@dell-Precision-M6400:~/Hämtningar/Logo 6.1/Linux/tools/Application$

这是西门子标志软舒适6.1,我有这方面的许可证。但我有个问题。

Unrecognized option: -Xincgc

那么如何才能让最新的JavaLTS11能够与2008年的java一起工作呢?我假设是JavaSE6或J2SE5.0。
有了logo软件,它有两个文件夹bin和lib


更新:
我移除了 -XincgcLOGOComfort.lax 现在我得到了这个

dell@dell-Precision-M6400:~/Hämtningar/Logo 6.1/Linux/tools/Application$ ./LOGOComfort 
Invocation of this Java Application has caused an InvocationTargetException. This application will now exit. (LAX)

Stack Trace:
java.lang.NoClassDefFoundError: com/sun/java/swing/plaf/windows/WindowsLookAndFeel
    at java.base/java.lang.ClassLoader.defineClass1(Native Method)
    at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1017)
    at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:174)
    at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:800)
    at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:698)
    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:621)
    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:579)
    at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
    at DE.siemens.ad.logo.app.Application.<clinit>(Application.java:141)
    at Start.startApplication(Start.java:570)
    at Start.main(Start.java:553)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:566)
    at com.zerog.lax.LAX.launch(DashoA8113)
    at com.zerog.lax.LAX.main(DashoA8113)
Caused by: java.lang.ClassNotFoundException: com.sun.java.swing.plaf.windows.WindowsLookAndFeel
    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581)
    at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
    ... 18 more
This Application has Unexpectedly Quit: Invocation of this Java Application has caused an InvocationTargetException. This application will now exit. (LAX)
dell@dell-Precision-M6400:~/Hämtningar/Logo 6.1/Linux/tools/Application$

更新:
解决方案:
删除-xincgc
改用Java8。它需要摆动。Java11不使用swing

tvz2xvvm

tvz2xvvm1#

打开文件“logocomfort”,因为它可能是一个shell脚本。找到 -Xincgc 选项并将其删除。
如果它是gobbledygook,安装一个java6,它现在已经删除了 -Xincgc 选项。
如果这不是一个选项,那么制作一个伪java:制作一个驻留在“真实”java位置的脚本,它所做的只是扫描所有命令行参数,从中剥离-xincgc,并将其余的传递给真实的java。这是一个疯狂的黑客,很可能打破其他东西,但它可能会'修复'这一点。我强烈建议你先选择前两个选项中的一个。
没有办法告诉Java11+:您是否“支持”了-xincgc选项。

k75qkfdt

k75qkfdt2#

错误消息表示找不到与windows关联的外观配置文件。
noclassdeffounderror:com/sun/java/swing/plaf/windows/windowslookandfeel
显然,这个应用程序在过去是为windows设计的。也许剧本改变了外观,但我不能不看就告诉你。
最好的办法是在windows机器上试试这个,看看它是否更进一步。如果不是这样的话,你就必须用一个支持它的旧的jre来尝试,比如JRE6。

相关问题