[英]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.