为什么在Java中会出现NoSuchFieldError异常?

为什么在Java中会出现NoSuchFieldError异常?,java,exception,browser,web,Java,Exception,Browser,Web,我正在尝试使用Eclipse内部浏览器显示任何网站 以下是我正在尝试的代码: public class WebTest { public static void main(String[] args) { NativeInterface.open(); SwingUtilities.invokeLater(new Runnable() { public void run() { JFrame fra

我正在尝试使用Eclipse内部浏览器显示任何网站

以下是我正在尝试的代码:

public class WebTest {

    public static void main(String[] args) {
        NativeInterface.open();
        SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                JFrame frame = new JFrame("YouTube Viewer");
                frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
                frame.getContentPane().add(getBrowserPanel(),
                        BorderLayout.CENTER);
                frame.setSize(800, 600);
                frame.setLocationByPlatform(true);
                frame.setVisible(true);
            }
        });
        NativeInterface.runEventPump();
        // don't forget to properly close native components
        Runtime.getRuntime().addShutdownHook(new Thread(new Runnable() {
            @Override
            public void run() {
                NativeInterface.close();
            }
        }));
    }

    public static JPanel getBrowserPanel() {
        JPanel webBrowserPanel = new JPanel(new BorderLayout());
        JWebBrowser webBrowser = new JWebBrowser();
        webBrowserPanel.add(webBrowser, BorderLayout.CENTER);
        webBrowser.setBarsVisible(false);
        webBrowser.navigate("https://www.youtube.com/v/b-Cr0EWwaTk?fs=1");
        return webBrowserPanel;
    }
}
但是,当我尝试运行它时,会出现以下异常:

Exception in thread "main" java.lang.NoSuchFieldError: DEPENDENCIES_CHECKVERSIONS
at chrriis.dj.nativeswing.swtimpl.NSSystemPropertySWT.<clinit>(NSSystemPropertySWT.java:94)
at chrriis.dj.nativeswing.swtimpl.core.SWTNativeInterface.<clinit>(SWTNativeInterface.java:86)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at chrriis.dj.nativeswing.swtimpl.internal.NativeCoreObjectFactory.create(NativeCoreObjectFactory.java:38)
at chrriis.dj.nativeswing.swtimpl.NativeInterface.<clinit>(NativeInterface.java:22)
at WebTest.main(WebTest.java:14)
线程“main”java.lang.NoSuchFieldError中出现异常:依赖项\u CHECKVERSIONS 位于chrriis.dj.nativeswing.swtimpl.NSSystemPropertySWT.(NSSystemPropertySWT.java:94) 位于chrriis.dj.nativeswing.swtimpl.core.SWTNativeInterface.(SWTNativeInterface.java:86) 位于sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法) 位于sun.reflect.NativeConstructorAccessorImpl.newInstance(未知源) 位于sun.reflect.delegatingConstructor或AccessorImpl.newInstance(未知源) 位于java.lang.reflect.Constructor.newInstance(未知源) 位于chrriis.dj.nativeswing.swtimpl.internal.NativeCoreObjectFactory.create(NativeCoreObjectFactory.java:38) 在chrris.dj.nativeswing.swtimpl.NativeInterface.(NativeInterface.java:22) 位于WebTest.main(WebTest.java:14) 所以我的依赖性显然有问题。。。但我不确定如何修复此问题,我已包括所有必要的罐子:


有什么想法吗?

也许这有助于解决你的问题,dj项目的官方论坛


我遇到了与您类似的问题,问题是jar文件[DJNativeSwing.jar&dj-nativeswing-swt-1.0.2.jar],我用dj项目附带的jar文件替换了它

从下载DJ项目。 提取并复制jar[DJNativeSwing.jar&DJNativeSwing SWT.jar],并替换为项目中以前的jar

DJNATIVESWING-SWT-1-0-2提取的文件夹内容:

日志显示您的DJ原生Swing库没有
依赖项\u CHECKVERSIONS
字段。尝试更新此依赖关系实际上,所有这些都没有帮助。我尝试了这个库的各种版本。