[英]Java SWT with maven Exception in thread “main” java.lang.NoClassDefFoundError: org/eclipse/swt/widgets/Composite
[英]How to fix 'Exception in thread “main” java.lang.NoClassDefFoundError: org/eclipse/swt/SWT' in Java
好的,所以我正在學習一個教程,希望創建一個可以擴展的基本瀏覽器。 在視頻中,它運行良好,但是很多人都說他們遇到了這個錯誤。 無論如何我都嘗試過,我也有。 錯誤是:
Exception in thread "main" java.lang.NoClassDefFoundError: org/eclipse/swt/SWT
我的代碼是:
import java.awt.BorderLayout;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import chrriis.common.UIUtils;
import chrriis.dj.nativeswing.swtimpl.NativeInterface;
import chrriis.dj.nativeswing.swtimpl.components.JWebBrowser;
@SuppressWarnings("serial")
public class NeutrinoBrowser extends JFrame {
private JPanel contentPane;
/**
* Launch the application.
*/
public static void main(String[] args) {
UIUtils.setPreferredLookAndFeel();
NativeInterface.open();
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
NeutrinoBrowser frame = new NeutrinoBrowser();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public NeutrinoBrowser() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
contentPane.setLayout(new BorderLayout(0, 0));
setContentPane(contentPane);
JPanel panel = new JPanel();
contentPane.add(panel, BorderLayout.CENTER);
panel.setLayout(new BorderLayout(0, 0));
final JWebBrowser browserArea = new JWebBrowser();
browserArea.navigate("http://google.com");
panel.add(browserArea, BorderLayout.CENTER);
}
}
我正在使用JavaSE 1.8,該庫是The DJ Project 。非常感謝您的幫助。 謝謝!
該異常告訴您在運行時您的類路徑設置不完整。
您缺少包含SWT庫元素的庫(又名JAR文件)。
如果您正在使用Maven構建系統,請參見此處以獲取更多詳細信息。
如果您不使用任何構建系統:請考慮使用一個。 同時,確定所需的JAR,手動下載並將其添加到類路徑中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.