つい最近、しばらく取り組んでいなかったプロジェクトに戻りました。この新しいプログラミング セッションで初めて実行したときは、読み込みに 3 分以上かかりました。前回の作業時 (約 3 か月前) と現在との間に何が変わったのかはわかりませんが、コードが変更されていないことはわかっています。
問題を JFrame コンストラクターまで追跡しました。この投稿を見つけました:
JFrame コンストラクターへの最初の呼び出しは、Swing アプリケーションの起動時に長い時間がかかります (java.awt.Window() のため)。
ただし、彼の問題は数百ミリ秒しかかからなかったため、関連性があるようです。簡単なテストに彼のコードを使用したところ、出力は次のようになりました。
最初の JFrame の場合は 202720。 2 番目の JFrame の場合は 0。
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 にエクスポート (同じ結果)