[英]java.lang.UnsatisfiedLinkError in Swing
我在 java swing 做一個簡單的項目,只是為了打發時間。 當我嘗試啟動應用程序時,它給了我這個錯誤:
Java HotSpot(TM) 64-Bit Server VM warning: Sharing is only supported for boot loader classes because bootstrap classpath has been appended
Exception in thread "main" java.lang.UnsatisfiedLinkError: D:\Java\bin\awt.dll: Routine di inizializzazione della libreria di collegamento dinamico (DLL) non riuscita
at java.base/jdk.internal.loader.NativeLibraries.load(Native Method)
at java.base/jdk.internal.loader.NativeLibraries$NativeLibraryImpl.open(NativeLibraries.java:383)
at java.base/jdk.internal.loader.NativeLibraries.loadLibrary(NativeLibraries.java:227)
at java.base/jdk.internal.loader.NativeLibraries.loadLibrary(NativeLibraries.java:169)
at java.base/jdk.internal.loader.NativeLibraries.findFromPaths(NativeLibraries.java:310)
at java.base/jdk.internal.loader.NativeLibraries.loadLibrary(NativeLibraries.java:280)
at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2416)
at java.base/java.lang.Runtime.loadLibrary0(Runtime.java:809)
at java.base/java.lang.System.loadLibrary(System.java:1893)
at java.desktop/java.awt.Toolkit$2.run(Toolkit.java:1380)
at java.desktop/java.awt.Toolkit$2.run(Toolkit.java:1378)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:312)
at java.desktop/java.awt.Toolkit.loadLibraries(Toolkit.java:1377)
at java.desktop/java.awt.Toolkit.<clinit>(Toolkit.java:1410)
at java.desktop/java.awt.Component.<clinit>(Component.java:622)
at com.company.Main.main(Main.java:6)
這是代碼(我有3個課程):
這是 class 頁面:
package com.company;
import javax.swing.*;
import java.awt.*;
public class Page extends JFrame {
Header header = new Header();
public Page(){
super("FW Ultra");
this.setSize(1000, 700);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.getContentPane().setLayout(new FlowLayout());
this.add(header);
this.setVisible(true);
}
}
這是 class header:
package com.company;
import javax.swing.*;
import java.awt.*;
public class Header extends JPanel {
public Header(){
super();
this.setLayout(new BorderLayout());
add(new JLabel("FVU | Film Viewer Ultra"), BorderLayout.WEST);
add(new JLabel("Version 1.0"), BorderLayout.EAST);
}
}
這是主要的
package com.company;
public class Main {
public static void main(String[] args) {
Page p = new Page();
}
}
PLZ幫忙看看
我對您的代碼進行了一些更改,並提出了這個 GUI。 我將 GUI 的大小減小了一半,以便更好地適應答案。
我更改了您所有三個課程中的一些代碼。 我將您的課程設置為內部課程,因此我可以將它們作為一個塊發布。 你應該把它們分開。
我通過調用SwingUtilities
invokeLater
方法啟動了您的 Swing GUI。 此方法確保在Event Dispatch Thread上創建和執行 Swing 組件。
這是完整的可運行代碼。
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import javax.swing.BorderFactory;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;
public class FileViewerMain {
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
new FileViewerMain().new Page();
}
});
}
public class Page extends JFrame {
Header header = new Header();
public Page(){
super("FW Ultra");
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.add(new Header(), BorderLayout.BEFORE_FIRST_LINE);
this.setSize(500, 350);
this.setVisible(true);
}
}
public class Header extends JPanel {
public Header(){
super();
this.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));
this.setLayout(new BorderLayout());
add(new JLabel("FVU | Film Viewer Ultra"), BorderLayout.WEST);
add(new JLabel("Version 1.0"), BorderLayout.EAST);
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.