[英]Error when i try to make executable file from .jar file
線程“主”中的異常java.lang.NoClassDefFoundError:org / netbeans / lib / awtextra / AbsoluteLayout
at ApplicationPackage.StartPage.initComponents(StartPage.java:300)
at ApplicationPackage.StartPage.<init>(StartPage.java:57)
at ApplicationPackage.Main.main(Main.java:30)
引起原因:java.lang.ClassNotFoundException:org.netbeans.lib.awtextra.AbsoluteLayout
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 3 more
我的代碼:
嘗試{
UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
}
catch (UnsupportedLookAndFeelException | ClassNotFoundException | InstantiationException | IllegalAccessException e) {
JOptionPane.showMessageDialog(null, e.toString(), "Eroare la aplicarea stilului ferestrei", JOptionPane.ERROR_MESSAGE);
}
StartPage frame = new StartPage();
frame.setVisible(true);
如何解決呢?
更新:我解決了這個錯誤。 但是現在有另一個問題。 如何創建與數據庫具有依賴關系的jar文件? 我的應用程序從H2數據庫文件讀寫。
NoClassDefFoundError
通常意味着在類路徑上找不到該類。
這是一些簡單的步驟和需要尋找的東西(使用Netbeans)。
添加庫時,請執行以下步驟
建立您的專案。 如果尚未更改任何默認的構建設置,則所有庫都應導出到[lib]文件夾。 然后,您需要檢查以下幾件事:
檢查以確保該庫確實存在。 轉到[Files]選項卡(如果未打開,請轉到[Window]-> [Files]),並確保該庫位於[libs]目錄中:
然后檢查以確保庫位於類路徑中。 檢查MANIFIEST.MF
。
您應該在libs\\AbsuluteLayout.jar
上看到libs\\AbsuluteLayout.jar
AbsuluteLayout.jar
清單版本:1.0
Ant版本:Apache Ant 1.9.2
創建時間:1.8.0_20-b26(Oracle公司)
類路徑:lib / AbsoluteLayout.jar
X-COMMENT:Main-Class將通過構建自動添加
主類:addjardemo.AddJarDemo
如果所有步驟都正確,則意味着運行jar時,jar應該與[lib]目錄位於同一級別,因為應用程序在那個確切位置(相對於調用jar而言)依賴於該jar。 )。 注意:這不是唯一的方法。 有關更多信息,我將對“ classpath”進行一些研究
如果要將所有類都包含在 jar中,則需要構建一個“ Uber Jar”。 不確定如何使用Netbeans設置執行此操作(如果可能的話),但是您可以搜索類似的主題,例如此主題
這是我從數據庫獲取數據的功能
public Vector getData(String query)throws Exception
{
Vector<Vector<String>> dataVector = new Vector<>();
try (Connection myConnection = ConectDataBase.ConectToBD()) {
PreparedStatement pst = myConnection.prepareStatement(query);
ResultSet rs = pst.executeQuery();
while(rs.next())
{
Vector<String> films = new Vector<>();
films.add(rs.getString(1));
films.add(rs.getString(2));
films.add(rs.getString(3));
films.add(rs.getString(4));
films.add(rs.getString(5));
films.add(rs.getString(6));
films.add(rs.getString(7));
films.add(rs.getString(8));
films.add(rs.getString(9));
dataVector.add(films);
}
}
return dataVector;
}
這是在包含Extracdet數據的幀中
public ListOfFilms() throws Exception {
// extragerea datelor din baza de date
PopulateDataTable dbengine = new PopulateDataTable();
data = dbengine.getData("SELECT * FROM DataStructure ORDER BY id DESC");
initComponents();
}
這是我的課程,連接到數據庫
public class ConectDataBase {
Connection myConnection;
public static Connection ConectToBD(){
try {
Class.forName("org.h2.Driver");
Connection myConnection = DriverManager.getConnection("jdbc:h2:~//RatedMovies", "", "");
return myConnection;
}
catch (ClassNotFoundException | SQLException e)
{
return null;
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.