就在最近,我回到了一个我有一段时间没做过的项目。我第一次在这个新的编程会话中运行它时,加载需要三分钟。我不知道从现在到我最后一次工作(大约三个月前)之间会发生什么变化,但我知道代码没有改变。
我将问题追溯到 JFrame 构造函数。我找到了这篇文章:
在 Swing 应用程序启动期间首次调用 JFrame 构造函数需要很长时间(因为 java.awt.Window())
然而,这似乎确实相关,因为他的问题只花了几百毫秒。我确实使用他的代码进行了简单的测试,我的输出如下:
第一个 JFrame 为 202720。 0 表示第二个 JFrame。
我正在使用 jdk-7u7-windows-x64。我完全不知道是什么原因造成的,因此我们将不胜感激。
谢谢你。
编辑这是我从链接帖子中复制的代码:
import javax.swing.*;
public class Main {
public static void main(String[] args) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
long start;
start = System.currentTimeMillis();
JFrame frame1 = new JFrame("Frame1");
System.out.println((System.currentTimeMillis() - start) + " for first JFrame.");
start = System.currentTimeMillis();
JFrame frame2 = new JFrame("Frame2");
System.out.println((System.currentTimeMillis() - start) + " for second JFrame.");
frame1.setVisible(true);
frame2.setVisible(true);
}
});
}
}
编辑我已经完成了所有通常的猜测工作
+ 重启 Eclipse +重新启动的Windows +重新安装Java + 导出到 Jar(结果相同)