java.lang.NoClassDefFoundError:sun / swing / plaf / synth / SynthUI [英] java.lang.NoClassDefFoundError: sun/swing/plaf/synth/SynthUI

查看:934
本文介绍了java.lang.NoClassDefFoundError:sun / swing / plaf / synth / SynthUI的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用Seaglass Look and Feel来获取我的Java Swings代码。但我一直收到这个错误。

I am using Seaglass Look and Feel for my Java Swings code. But I keep getting this error.

    Exception in thread "main" java.lang.NoClassDefFoundError: sun/swing/plaf/synth/SynthUI
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
    at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:278)
    at javax.swing.SwingUtilities.loadSystemClass(SwingUtilities.java:1873)
    at javax.swing.UIDefaults.getUIClass(UIDefaults.java:686)
    at javax.swing.UIDefaults.getUI(UIDefaults.java:758)
    at javax.swing.UIManager.getUI(UIManager.java:1013)
    at javax.swing.JRootPane.updateUI(JRootPane.java:483)
    at javax.swing.SwingUtilities.updateComponentTreeUI0(SwingUtilities.java:1230)
    at javax.swing.SwingUtilities.updateComponentTreeUI0(SwingUtilities.java:1245)
    at javax.swing.SwingUtilities.updateComponentTreeUI(SwingUtilities.java:1221)
    at jsupport.lookandfeel.LookAndFeel.changeLookandFeel(LookAndFeel.java:246)
    at jsupport.lookandfeel.LookAndFeel.<init>(LookAndFeel.java:22)
    at jsupport.lookandfeel.Main.main(Main.java:11)
Caused by: java.lang.ClassNotFoundException: sun.swing.plaf.synth.SynthUI
    at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
    ... 25 more

我做了一些研究,发现Seaglass不能与Java 7(我目前的版本)一起工作,因此也是问题。但我正在寻找一种方法使其工作,或者如果有人有任何与Java 7版本完美配合的演示,那将非常有用。

I did a bit of research and found that Seaglass does not work with Java 7 (my current version) and hence the issue. But I am looking a way to make it work or if anyone has any demo that works perfectly with Java 7 version, it would be very helpful.

我的代码:

   private void changeLookandFeel() {
    try {

        UIManager.removeAuxiliaryLookAndFeel(UIManager.getLookAndFeel());
        SyntheticaLookAndFeel.setWindowsDecorated(false);
        UIManager.setLookAndFeel(UIMANAGER_STRING);
         UIManager.setLookAndFeel("de.javasoft.plaf.synthetica.SyntheticaBlueIceLookAndFeel");

         for (int i = 0; i < LookAndFeel.getFrames().length; ++i) {
            SwingUtilities.updateComponentTreeUI(LookAndFeel.getFrames()[i]);
          SwingUtilities.updateComponentTreeUI(this);
       }
        SwingUtilities.updateComponentTreeUI(this);

    } catch (Exception ex) {
        try {
           UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
           UIManager.setLookAndFeel("de.javasoft.plaf.synthetica.SyntheticaBlackEyeLookAndFeel");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

我使用的罐子
< a href =https://i.stack.imgur.com/UkkC4.png =nofollow noreferrer>

推荐答案

测试兼容性的最佳方法是检查代码是否为使用Java 6(如果您正在使用任何IDE,例如Intellij的eclipse,他们可以选择使用较低的Java版本编译文件)。

The best way to test the compatibility is to check whether the code is working with Java 6 (If you are using any IDE like eclipse of Intellij they have the option of compiling file with lower Java version).

从错误中可以看出运行时它无法找到Class或它所在的路径。您可以尝试 java -cp 来指定路径。

From the error it seems that at run-time it is not able to find the Class, or the path where it is located. You can try java -cp to specify the path.

这篇关于java.lang.NoClassDefFoundError:sun / swing / plaf / synth / SynthUI的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆