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

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

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

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

クラッシュ

クラッシュ(crash)はプログラムを完全に停止させてしまう修復不可能なエラー結果を指します。

Q&A

解決済

1回答

4219閲覧

JavaでWindowを表示しようとするとクラッシュする

hat_17

総合スコア1

Java

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

クラッシュ

クラッシュ(crash)はプログラムを完全に停止させてしまう修復不可能なエラー結果を指します。

0グッド

0クリップ

投稿2020/10/10 07:12

該当のソースコード

一応書いときますが、java.awt.Window.show()を呼び出すとクラッシュするところまでは分かっています。

Java

1package bug; 2import javax.swing.*; 3 4public class Main { 5 public static void main(String[] args) { 6 new JFrame().setVisible(true); 7 } 8}

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

ログが長いので最初の方だけ載せます。

log

1# 2# A fatal error has been detected by the Java Runtime Environment: 3# 4# EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x00007ffaf0ac02ae, pid=28620, tid=19448 5# 6# JRE version: Java(TM) SE Runtime Environment (15.0+36) (build 15+36-1562) 7# Java VM: Java HotSpot(TM) 64-Bit Server VM (15+36-1562, mixed mode, sharing, tiered, compressed oops, g1 gc, windows-amd64) 8# Problematic frame: 9# C [awt.dll+0x902ae] 10# 11# No core dump will be written. Minidumps are not enabled by default on client versions of Windows 12# 13# If you would like to submit a bug report, please visit: 14# https://bugreport.java.com/bugreport/crash.jsp 15# The crash happened outside the Java Virtual Machine in native code. 16# See problematic frame for where to report the bug. 17# 18 19--------------- S U M M A R Y ------------ 20 21Command Line: -javaagent:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2020.2.3\lib\idea_rt.jar=50583:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2020.2.3\bin -Dfile.encoding=UTF-8 Main 22 23Host: Intel(R) Core(TM) i7-8550U CPU @ 1.80GHz, 8 cores, 7G, Windows 10 , 64 bit Build 18362 (10.0.18362.1082) 24Time: Sat Oct 10 06:49:44 2020 ???? (?W?€??) elapsed time: 0.502502 seconds (0d 0h 0m 0s) 25 26--------------- T H R E A D --------------- 27 28Current thread (0x0000012af1a865f0): JavaThread "main" [_thread_in_native, id=19448, stack(0x000000040b300000,0x000000040b400000)] 29 30Stack: [0x000000040b300000,0x000000040b400000], sp=0x000000040b3feef0, free space=1019k 31Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code) 32C [awt.dll+0x902ae] 33 34Java frames: (J=compiled Java code, j=interpreted, Vv=VM code) 35j sun.awt.windows.WComponentPeer._setFont(Ljava/awt/Font;)V+0 java.desktop@15 36j sun.awt.windows.WComponentPeer.setFont(Ljava/awt/Font;)V+7 java.desktop@15 37j sun.awt.windows.WWindowPeer.initialize()V+42 java.desktop@15 38j sun.awt.windows.WFramePeer.initialize()V+1 java.desktop@15 39j sun.awt.windows.WComponentPeer.<init>(Ljava/awt/Component;)V+83 java.desktop@15 40j sun.awt.windows.WCanvasPeer.<init>(Ljava/awt/Component;)V+2 java.desktop@15 41j sun.awt.windows.WPanelPeer.<init>(Ljava/awt/Component;)V+2 java.desktop@15 42j sun.awt.windows.WWindowPeer.<init>(Ljava/awt/Window;)V+2 java.desktop@15 43j sun.awt.windows.WFramePeer.<init>(Ljava/awt/Frame;)V+2 java.desktop@15 44j sun.awt.windows.WToolkit.createFrame(Ljava/awt/Frame;)Ljava/awt/peer/FramePeer;+5 java.desktop@15 45j java.awt.Frame.addNotify()V+20 java.desktop@15 46j java.awt.Window.show()V+8 java.desktop@15 47j java.awt.Component.show(Z)V+5 java.desktop@15 48j java.awt.Component.setVisible(Z)V+2 java.desktop@15 49j java.awt.Window.setVisible(Z)V+2 java.desktop@15 50j Main.main([Ljava/lang/String;)V+8 51v ~StubRoutines::call_stub 52

試したこと

javaのバージョンを12まで下げたら問題なく動きました。また、jdkのバージョン12でコンパイルしたものでも、jreバージョン15などで実行したら同様のエラーが出ました。
なぜか同じjdkの中にいるjconsoleは問題なく動きます。何か具体的な解決策などを知っている方は教えてほしいです。

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

$ java -version
java version "15" 2020-09-15
Java(TM) SE Runtime Environment (build 15+36-1562)
Java HotSpot(TM) 64-Bit Server VM (build 15+36-1562, mixed mode, sharing)

OS:
Windows 10 version 1903 (OS build: 18362.1082)

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

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

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

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

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

guest

回答1

0

ベストアンサー

私も根本的な原因は分からないのでここへ書いておきますが、実行時の文字コードがUTF-8やEUC-JPで起きるようです。
実行時のVM引数に -Dfile.encoding=ISO-8859-1 などUTF-8やEUC-JP以外の文字コードを指定して実行して見てください。おそらくウィンドウが出ると思います。
私はJetBrainsの環境を使った事無いので引数の当て方は分かりませんが・・・。
私もUTF-8での実行しクラッシュさせないやり方は分かりません。何ででしょうね。
ちなみに、Java11では11.0.6からクラッシュしてしまいます。

投稿2020/10/10 09:57

shinami

総合スコア334

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.37%

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

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

質問する

関連した質問