有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

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

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$ 

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

Unrecognized option: -Xincgc

那么,我如何才能使最新的JavaLTS11能够与2008年的Java一起工作呢?我假设是JavaSE6或J2SE5.0

使用徽标软件,它附带两个文件夹binlib

enter image description here

enter image description here

更新:

我删除了LOGOComfort.lax文件中的-Xincgc,现在我得到了这个

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$ 

更新:

解决方案:

  1. 删除-Xincgc
  2. 改用Java8。它需要摆动。Java11不使用Swing

共 (2) 个答案

  1. # 1 楼答案

    错误消息表示找不到与Windows关联的外观配置文件

    java.lang.NoClassDefFoundError: com/sun/java/swing/plaf/windows/WindowsLookAndFeel

    显然,这个应用程序在过去是为Windows设计的。也许脚本改变了外观轮廓,但我不能不看就告诉你

    最好的办法是在Windows机器上试试这个,看看它是否更进一步。如果没有,那么您必须使用支持该功能的较旧JRE(如JRE 6)进行尝试

  2. # 2 楼答案

    打开文件“LOGOComfort”,因为它可能是一个shell脚本。找到-Xincgc选项并将其删除

    如果是gobbledygook,安装一个java6,它现在已经删除了-Xincgc选项

    如果这不是一个选项,那么制作一个伪java:制作一个位于“真实”java位置的脚本,它所做的只是扫描所有命令行参数,从中剥离-Xincgc,并将其余的传递给真实的java。这是一个疯狂的黑客,可能会破坏其他东西,但它可能会“修复”这个问题。我强烈建议您首先选择前两个选项中的一个

    没有办法告诉Java11+:您是否“支持”了-Xincgc选项