質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

解決済

2回答

8572閲覧

IntelliJ IDEA でのJavaのSwingでエラーが出ます

qpwoeiruty

総合スコア5

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

0クリップ

投稿2020/03/26 12:46

編集2020/03/26 13:35

前提・実現したいこと

IntelliJ IDEA で Java を開発する際の質問です。

SwingでJFrameを作って表示する以下のようなコードを実行すると、 EXCEPTION_ACCESS_VIOLATION (0xc0000005) という fatal error が発生してしまいます。

import javax.swing.*;

class Main{
public static void main(String[] args){
JFrame frame = new JFrame("aaa");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(600, 500);
frame.setVisible(true);
}
}

frame.setVisible(true); の行が実行されると、このエラーが出てしまうようです。

JDKは13.0.2ですが、eclipse で試すとエラーは全く発生しないので、IntelliJ IDEA固有の問題だと思うのですが、どうやって解決すれば良いでしょうか?

frame.setVisible(true); をコメントアウトするとエラーは発生せず正常に実行終了するので、JDKが入っていないなどの根本的な環境設定のミスは無いはずなのですが…。

Swingの代わりにAWTのFrameを使っても、やはり同じようにエラーメッセージが出て止まってしまいます。

また、試しに .jar を生成するビルドをして、開発環境の外から実行してら正常にウィンドウが表示されました。
やはり IntelliJ IDEA の開発環境に起因する問題のように思えますが、どこから解決の糸口を辿っていけば良いでしょうか?

発生している問題・エラーメッセージ

# # A fatal error has been detected by the Java Runtime Environment: # # EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x00007ffb030cf98a, pid=92, tid=12572 # # JRE version: Java(TM) SE Runtime Environment (13.0.2+8) (build 13.0.2+8) # Java VM: Java HotSpot(TM) 64-Bit Server VM (13.0.2+8, mixed mode, sharing, tiered, compressed oops, g1 gc, windows-amd64) # Problematic frame: # C [awt.dll+0x8f98a] # # No core dump will be written. Minidumps are not enabled by default on client versions of Windows # # If you would like to submit a bug report, please visit: # http://bugreport.java.com/bugreport/crash.jsp # The crash happened outside the Java Virtual Machine in native code. # See problematic frame for where to report the bug. # ~以下省略~

該当のソースコード

Java

1import javax.swing.*; 2 3class Main{ 4 public static void main(String[] args){ 5 JFrame frame = new JFrame("aaa"); 6 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 7 frame.setSize(600, 500); 8 frame.setVisible(true); 9 } 10}

補足情報(FW/ツールのバージョンなど)

JDK : Oracle JavaSE 13.0.2
IDE : IntelliJ IDEA 2019.3.4 Community (Windows10 64Bit)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

shiketa

2020/03/26 13:02 編集

> IntelliJ IDEA 2019.3.14 Community IntelliJ IDEA 2019.3.4 Community かな? 同じ環境で実行できました...。ただし、OSがLinuxですけれど。 $ java -version java version "13.0.2" 2020-01-14 Java(TM) SE Runtime Environment (build 13.0.2+8) Java HotSpot(TM) 64-Bit Server VM (build 13.0.2+8, mixed mode, sharing)
qpwoeiruty

2020/03/26 13:14

すみません、バージョンは書き間違えて、ご指摘の通り IntelliJ IDEA 2019.3.4 Community です。 当方OSはWindows10なのですが、となるとOSと開発環境間の固有の問題なんでしょうか…。
shiketa

2020/03/26 13:26

JDKの詳細も記載があったほうがいいかもしれません。OracleJDK? OpenJDK? hogeJDK?
qpwoeiruty

2020/03/26 13:32

OracleJDKです。詳細を追加しました。
guest

回答2

0

ベストアンサー

AWT Simple Example not Work

jimbeさんの回答にコメントしようかと迷ったのですが、バグシステムにあがっていましたので情報提供します。AWT Simple Example not Work ソースコード Sample.java が添付。

  • 解決済み、ベリファイ待ち。ベリファイ次第でオープンされるかクローズされる状態。
  • Windows 10 x86_64 で報告。C [awt.dll+0x8f98a] なのでWindows固有のようです。
    awt.dll+0x8f98a で検索すると情報が得られます。
  • JDK 15で修正。15(GA)は9月リリース予定。現在はOpen JDK 15 (EA) を入手可。

解決策

jdk-12.0.2にバージョンダウンで解決、その後再現しなかったという情報。【NetBeans】起動しなくなってしまった時の話

情報提供の理由

今、手元にLinux/Mac環境しかないため。Open JDK 15 (EA) をダウンロードして上記のソースコードをコンパイル、実行したが当然のごとく正常動作した。JDK 15 Early-Access Builds

関連情報

投稿2020/03/26 16:47

編集2020/03/26 17:07
xebme

総合スコア1081

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

0

幾つか検索をかけてみたのですが, 以下のような記事もありました.

Java:JDK13のバグ

VM引数を指定するとクラッシュする

java -Dfile.encoding=UTF-8 -jar sample.jar
などとして起動しようとすると、以下のようにVMがクラッシュしてしまう。
(以下略)

バージョンが違うので修正されているかもしれませんが.

また, main メソッドで setVisible をするのは原則としては NG ですので, EDT に投げる形にしてみる等は如何でしょうか.

setVisibleについて の KSwordOfHaste さんの回答:

swingコンポーネントは本来EDT(Event Dispatch Thread)でのみアクセスされることを意図して設計されています。

(以下略)

投稿2020/03/26 13:44

jimbe

総合スコア12639

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

qpwoeiruty

2020/03/26 14:29

Swing の setVisible を EDT で実行するようにしても、やはり同様にクラッシュしてしまいます。
qpwoeiruty

2020/03/26 14:33

ただし、前述のJDK13のバグをコマンドライン上から試してみたら、引数なしでは正常に実行できていますが、引数を加えるとクラッシュします。やはりこれが原因っぽいですね。
jimbe

2020/03/26 14:34

ダメでしたか...お役に立てずすいません.
jimbe

2020/03/26 14:39

> 引数を加えるとクラッシュします コメント書き込みのタイミングで変な感じになってしまいましたが, こちらが引っかかりそうですか. とすると対処は, IntelliJ からの実行の引数の設定辺りを調整するか, JDKのバージョンダウンといったところでしょうか.
qpwoeiruty

2020/03/26 14:42

とりあえずJDK11で試していますが、同じようにクラッシュしてしまいます。IntelliJからの実行時引数が調性できれば、今のところそれが早いかもしれません。
jimbe

2020/03/26 14:47

> JDK11で試していますが、同じようにクラッシュ ...結構分かり易く致命的な問題な気がしますけど, こんなの残してていいのかと思えます. まぁ私も10(9?)以降使ってないですけど...
qpwoeiruty

2020/03/26 15:22

ホント、根本的な問題すぎて、ずっと自分の設定ミスとしか思えませんでした…。 もしかしたら、同じバージョンでもほとんどの環境では発生しないバグとかだったりするのかもしれません。でも、となると余計に厄介そうです。
jimbe

2020/03/26 15:46

VM 引数によって変わる動作の中で, 環境的な問題があるかもしれないということですね. リンク先ではバージョン以外の情報は無かったので, その辺りは確認できませんが... 回答には書いていませんが, 同じようなエラーでメモリ不足というのもありました. [Java]EXCEPTION_ACCESS_VIOLATIONが発生した場合の対応 http://daybreaksnow.hatenablog.jp/entry/2013/02/01/192548 >compacting perm genが99% usedとなっているので、このメモリ領域を使い切ったことが原因と推測した。 >この領域はPermanent領域と呼ばれ、クラスやメソッドなどのメタ情報を保持する領域となっている。 (中略) > 今回は以下のVM引数を与えることで対応した。 > -XX:MaxPermSize=128m 2013/2 と古い情報ですし, Eclipse でデバッグ中という環境・状況も一致しないので参考としても"?"ですが, 一応情報としてご紹介しておきます.
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問