2015-02-25 3 views
1

Я пытаюсь отобразить любой веб-сайт, используя внутренний браузер Eclipse.Почему в Java возникает исключение NoSuchFieldError?

Вот код, который я пытаюсь:

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) 

Так что явно что-то не так с моей зависимости ... Но я не уверен, как это исправить, я включил все необходимые банки:

enter image description here

Любые идеи?

+0

Журнал говорит, что ваш DJ Native Свинг библиотека не имеет поле 'DEPENDENCIES_CHECKVERSIONS'. Попробуйте обновить эту зависимость. –

ответ

0

я столкнулся с подобной проблемой, как ваши, проблема была с баночкой файлами [DJNativeSwing.jar & dj-nativeswing-swt-1.0.2.jar], который я заменил баночками, которые пришли с проектом DJ.

Загрузить проект DJ от sourceforge_dj_project. Вытяжные и копировальные баночки [DJNativeSwing.jar & DJNativeSwing-SWT.jar] и заменить на предыдущие в вашем проекте.

DJNATIVESWING-SWT-1-0-2 извлекаемые содержимое папки: DJNATIVESWING-SWT-1-0-2-Contents

Смежные вопросы