Неустранимая ошибка SIGSEGV при запуске исполняемого файла JAR - PullRequest
0 голосов
/ 20 апреля 2019

Я использую Ubuntu 16.04, и это результат $ java -version:

openjdk version "9-internal"
OpenJDK Runtime Environment (build 9-internal+0-2016-04-14-195246.buildd.src)
OpenJDK 64-Bit Server VM (build 9-internal+0-2016-04-14-195246.buildd.src, mixed mode)

У меня есть простой код, который я могу успешно запустить в Eclipse:

public static void main(String[] args) throws IOException {
    JFrame frame = new JFrame("Merge Operation");
    frame.setSize(390, 300);
    frame.setLocation(100, 150);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    JFrame.setDefaultLookAndFeelDecorated(true);
    JButton startButton = new JButton("Star");
    startButton.setBounds(50, 50, 50, 50);
    frame.add(startButton);
    frame.setLayout(null);
    frame.setVisible(true);
}

Также из этого я создал исполняемый файл .jar. Но когда я запускаю его в терминале, JRE обнаруживает fatal error. Хотя, когда я комментирую frame.add(startButton);, я могу успешно запустить .jar файл.

Что вызывает эту ошибку и как я могу ее решить?

Это часть журнала ошибок:

--------------- S U M M A R Y ------------

Командная строка: test_swing.jar

Хост: процессор Intel® Core iM-i7-5820K @ 3,30 ГГц, 12 ядер, 7 ГБ, Ubuntu 16.04.6 LTS Время: сб 20 апреля 15:20:58 2019 +0430 истекшее время: 0 секунд (0d 0h 0m 0s)

--------------- T H R E A D ---------------

Текущий поток (0x00007f872040f000): JavaThread "AWT-EventQueue-0" [_thread_in_native, id = 9831, стек (0x00007f865f3c7000,0x00007f865f4c8000)]

Стек: [0x00007f865f3c7000,0x00007f865f4c8000], sp = 0x00007f865f4c15b0, свободное пространство = 1001k Собственные кадры: (J = скомпилировано Код Java, j = интерпретированный, Vv = код VM, C = собственный код) C [libjava.so + 0x1d009] JNU_GetEnv + 0x19 C [libfontmanager.so + 0x33f8e] C [libfreetype.so.6 + 0x14d2b] FT_Stream_Seek + 0x1b

фреймы Java: (J = скомпилированный код Java, j = интерпретированный, Vv = код VM) j sun.font.FreetypeFontScaler.initNativeScaler (Lsun / шрифт / Font2D; IIZI) Д + 0 java.desktop@9-intern j sun.font.FreetypeFontScaler (Lsun / шрифт / Font2D; IZI). V + 26 java.desktop@9-internal v ~ StubRoutines :: call_stub j sun.reflect.NativeConstructorAccessorImpl.newInstance0 (Ljava / языки / отражение / Конструктор; [Ljava / языки / объект;) Ljava / языки / объект; +0 java.base@9-intern j sun.reflect.NativeConstructorAccessorImpl.newInstance ([Ljava / языки / объект;) Ljava / языки / объект; +85 java.base@9-intern j sun.reflect.DelegatingConstructorAccessorImpl.newInstance ([Ljava / языки / объект;) Ljava / языки / объект; +5 java.base@9-intern j java.lang.reflect.Constructor.newInstance ([Ljava / языки / объект;) Ljava / языки / объект; +65 java.base@9-intern j sun.font.FontScaler.getScaler (Lsun / шрифт / Font2D; IZI) Lsun / шрифт / FontScaler; +39 java.desktop@9-intern j sun.font.TrueTypeFont.getScaler () Lsun / шрифт / FontScaler; +21 java.desktop@9-intern j . Sun.font.FileFontStrike (Lsun / шрифт / FileFont; Lsun / шрифт / FontStrikeDesc;) V + 204 java.desktop@9-intern j sun.font.FileFont.createStrike (Lsun / шрифт / FontStrikeDesc;) Lsun / шрифт / FontStrike; +18 java.desktop@9-intern j sun.font.Font2D.getStrike (Lsun / шрифт / FontStrikeDesc, Z) Lsun / шрифт / FontStrike; +92 java.desktop@9-intern j sun.font.Font2D.getStrike (Lsun / шрифт / FontStrikeDesc;) Lsun / шрифт / FontStrike; +3, java.desktop@9-intern j sun.font.CompositeStrike.getStrikeForSlot (I) Lsun / шрифт / PhysicalStrike; +23 java.desktop@9-intern j sun.font.CompositeStrike.getFontMetrics () Lsun / шрифт / StrikeMetrics; +31 java.desktop@9-intern j sun.font.FontDesignMetrics.initMatrixAndMetrics () V + 28 java.desktop@9-intern j sun.font.FontDesignMetrics (Ljava / AWT / шрифт; Ljava / AWT / шрифт / FontRenderContext;). В + 62 java.desktop@9-intern j sun.font.FontDesignMetrics.getMetrics (/ AWT / Font Ljava; / AWT / шрифт / FontRenderContext Ljava;) Lsun / шрифт / FontDesignMetrics; +128 java.desktop@9-intern j sun.swing.SwingUtilities2.getFontMetrics (Ljavax / свинг / JComponent; Ljava / AWT / шрифт;) Ljava / AWT / FontMetrics; +15 java.desktop@9-intern j javax.swing.JComponent.getFontMetrics (Ljava / AWT / шрифт;) Ljava / AWT / FontMetrics; +2 java.desktop@9-intern j sun.swing.SwingUtilities2.getFontMetrics (Ljavax / качели / JComponent; Ljava / AWT / Графика, Ljava / AWT / Font;) Ljava / AWT / FontMetrics; +6 java.desktop@9-intern j sun.swing.SwingUtilities2.getFontMetrics (Ljavax / качели / JComponent; Ljava / AWT / График;) Ljava / AWT / FontMetrics, +6 java.desktop@9-intern j javax.swing.plaf.basic.BasicButtonUI.paint (Ljava / AWT / Графика; Ljavax / свинг / JComponent;) V + 15 java.desktop@9-intern jjavax.swing.plaf.metal.MetalButtonUI.update (Ljava / AWT / Графика; Ljavax / свинг / JComponent;) V + 86 java.desktop@9-intern j javax.swing.JComponent.paintComponent (Ljava / AWT / Графика;) V + 26 java.desktop@9-intern j javax.swing.JComponent.paint (Ljava / AWT / Графика;) V + 286 java.desktop@9-intern j javax.swing.JComponent.paintChildren (Ljava / AWT / Графика;) V + 501 java.desktop@9-intern j javax.swing.JComponent.paint (Ljava / AWT / Графика;) V + 318 java.desktop@9-intern j javax.swing.JComponent.paintChildren (Ljava / AWT / Графика;) V + 501 java.desktop@9-intern j javax.swing.JComponent.paint (Ljava / AWT / Графика;) V + 318 java.desktop@9-intern j javax.swing.JLayeredPane.paint (Ljava / AWT / Графика;) V + 73 java.desktop@9-intern j javax.swing.JComponent.paintChildren (Ljava / AWT / Графика;) V + 501 java.desktop@9-intern j javax.swing.JComponent.paintToOffscreen (Ljava / AWT / Графика; IIIIII) V + 72 java.desktop@9-intern j javax.swing.BufferStrategyPaintManager.paint (Ljavax / свинг / JComponent; Ljavax / свинг / JComponent; Ljava / AWT / Графика; IIII) Z + 164 java.desktop@9-intern j javax.swing.RepaintManager.paint (Ljavax / свинг / JComponent; Ljavax / свинг / JComponent; Ljava / AWT / Графика; IIII) V + 51 java.desktop@9-intern j javax.swing.JComponent.paint (Ljava / AWT / Графика;) V + 221 java.desktop@9-intern j java.awt.GraphicsCallback $ PaintCallback.run (Ljava / AWT / компонентный; Ljava / AWT / Графика;) V + 2 java.desktop@9-intern j sun.awt.SunGraphicsCallback.runOneComponent (Ljava / AWT / компонентный; Ljava / AWT / Прямоугольник; Ljava / AWT / Графика; Ljava / AWT / форма; I), V + 155 java.desktop@9-intern j sun.awt.SunGraphicsCallback.runComponents ([Ljava / AWT / компонента; Ljava / AWT / Графика; I) V + 157 java.desktop@9-intern j java.awt.Container.paint (Ljava / AWT / Графика;) V + 58 java.desktop@9-intern j java.awt.Window.paint (Ljava / awt / Graphics;) V + 68 java.desktop@9-internal j javax.swing.RepaintManager $ 4.run () Ljava / lang / Void; +142 java.desktop@9-intern j javax.swing.RepaintManager $ 4.run () Ljava / языки / объекта; +1 java.desktop@9-internal v ~ StubRoutines :: call_stub j java.security.AccessController.doPrivileged (Ljava / безопасность / PrivilegedAction; Ljava / безопасность / AccessControlContext;) Ljava / языки / объекта; +0 java.base@9-intern j java.security.ProtectionDomain $ JavaSecurityAccessImpl.doIntersectionPrivilege (Ljava / безопасность / PrivilegedAction; Ljava / безопасность / AccessControlContext; Ljava / безопасность / AccessControlContext;) Ljava / языки / объекта; +18 java.base@9-intern j javax.swing.RepaintManager.paintDirtyRegions (Ljava / Util / Карта;) V + 154 java.desktop@9-intern j javax.swing.RepaintManager.paintDirtyRegions () V + 46 java.desktop@9-intern j javax.swing.RepaintManager.prePaintDirtyRegions () V + 73 java.desktop@9-intern j javax.swing.RepaintManager.access $ 1200 (Ljavax / свинг / RepaintManager;) V + 1 java.desktop@9-intern j javax.swing.RepaintManager $ ProcessingRunnable.run () V + 37 java.desktop@9-intern j java.awt.event.InvocationEvent.dispatch () V + 47 java.desktop@9-internal J java.awt.EventQueue.dispatchEventImpl (Ljava / AWT / AWTEvent; Ljava / языки / объекта;) V + 21 java.desktop@9-intern j java.awt.EventQueue.access $ 500 (Ljava / AWT / EventQueue; Ljava / AWT / AWTEvent; Ljava / языки / объекта;) V + 3 java.desktop@9-intern j java.awt.EventQueue $ 3.run () Ljava / lang / Void; +32 java.desktop@9-internal j java.awt.EventQueue $ 3.run () Ljava / lang / Object; +1 java.desktop@9-internal v ~ StubRoutines :: call_stub j java.security.AccessController.doPrivileged (Ljava / безопасность / PrivilegedAction; Ljava / безопасность / AccessControlContext;) Ljava / языки / объекта; +0 java.base@9-intern j java.security.ProtectionDomain $ JavaSecurityAccessImpl.doIntersectionPrivilege (Ljava / безопасность / PrivilegedAction; Ljava / безопасность / AccessControlContext; Ljava / безопасность / AccessControlContext;) Ljava / языки / объекта; +18 java.base@9-intern j java.awt.EventQueue.dispatchEvent (Ljava / AWT / AWTEvent;) V + 46 java.desktop@9-intern j java.awt.EventDispatchThread.pumpOneEventForFilters (I), V + 183java.desktop@9-internal j java.awt.EventDispatchThread.pumpEventsForFilter (ILjava / awt / Условный; Ljava / awt / EventFilter;) V + 35 java.desktop@9-internal j java.awt.EventDispatchThread.pumpEventsForHawt / Условный; Ljava / AWT / Компонент;) V + 11 java.desktop@9-internal j java.awt.EventDispatchThread.pumpEvents (ILjava / awt / Условный;) V + 4 java.desktop@9-internal java.awt.EventDispatchThread.pumpEvents (Ljava / awt / Conditional;) ​​V + 3 java.desktop@9-internal j java.awt.EventDispatchThread.run () V + 9 java.desktop@9-internal v ~ StubRoutines :: call_stub

siginfo: si_signo: 11 (SIGSEGV), si_code: 1 (SEGV_MAPERR), si_addr: 0x0000000000000000

Регистрация в отображении памяти:

RAX = 0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000x0000000000000000 - это неизвестное значение. RCX = 0x0000000000000000 - это неизвестное значение. RDX = 0x0000000000010002 - это неизвестное значение. RSP = 0x00007f865f4c15b0 указывает на стек для потока: 0x00007f872040f000 RBP = 0x00007f815 - 065стек для потока: 0x00007f872040f000 RSI = 0x0000000000010002 является неизвестным значением RDI = 0x0000000000000000 является неизвестным значением R8 = 0x0000000000000000 является неизвестным значением R9 = 0x0000000000000000 является неизвестным значением R10 = 0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000usr / lib / jvm / java-9-openjdk-amd64 / lib / amd64 / libjava.so по адресу 0x00007f871fdd3000 R12 = 0x00007f8648031620 - это неизвестное значение R13 = 0x000000000000000000 - это неизвестное значение R14 = 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000значение

Регистры: RAX = 0x0000000000000000, RBX = 0x0000000000000000, RCX = 0x0000000000000000, гексоген = 0x0000000000010002 РСП = 0x00007f865f4c15b0, РБП = 0x00007f865f4c15c0, РСИ = 0x0000000000010002, RDI = 0x0000000000000000 R8 = 0x0000000000000000, R9 = 0x0000000000000000, R10 = 0x00000000000001db, R11 = 0x00007f871fdefff0 R12 = 0x00007f8648031620, R13 = 0x0000000000000000, R14 = 0x0000000000000000, R15 = 0x00007f8648031680 RIP = 0x00007f871fdf0009 = 0x000S0000000010246, CSGSFS = 0x002b000000000033, ERR = 0x0000000000000004
TRAPNO = 0x000000000000000e

1043 * Верх стека: (зр = 0x00007f865f4c15b0) 0x00007f865f4c15b0:

0000000000000000 9ba8cd26fca30900 0x00007f865f4c15c0:
00007f865f4c1600 00007f8670326f8e 0x00007f865f4c15d0:
00007f864802143000007f8648031620 0x00007f865f4c15e0:
0000000000000000 0000000000000000 0x00007f865f4c15f0:
00007f8648031620 00007f8648031680 0x00007f865f4c1600: * 1 049 * 0000000000000000 00007f867005dd2b 0x00007f865f4c1610:
0000000000000000 00007f86702efd80 0x00007f865f4c1620: * тысяча пятьдесят-одна * 0000000000000000 00007f86700718e0 0x00007f865f4c1630: * тысяча пятьдесят-дв * 0000000000000002 0000003200000008 0x00007f865f4c1640:
0000000000000000 00000000000000000x00007f865f4c1650:
0000006e0000005b 0000000000000000 0x00007f865f4c1660:
0000000000000000 0000007c00000077 0x00007f865f4c1670:
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c1690:
0000000000000000 00007f8648000020 0x00007f865f4c16a0:
0000000000000070 00007f865f4c1754 0x00007f865f4c16b0:
00007f8648021430 00007f8648031680 0x00007f865f4c16c0:
00007f865f4c1754 00007f8726554184 0x00007f865f4c16d0:
0000000000000000 00007f865f4c1704 0x00007f865f4c16e0:
00007f86702ec9e0 9ba8cd26fca30900 0x00007f865f4c16f0:
0000000000000070 00007f86480210b0 0x00007f865f4c1700:
00007f86702ec9e0 00007f865f4c1818 0x00007f865f4c1710:
00007f8648021430 00007f8648031680 0x00007f865f4c1720:
00007f8648031bb0 00007f86700604c2 0x00007f865f4c1730:
0000000100000000 00007f865f4c1820 0x00007f865f4c1740:
0000000000000000 0000000000000000 0x00007f865f4c1750:
000000005f4c1818 9ba8cd26fca30900 0x00007f865f4c1760:
00007f86480210b0 00007f865f4c1820 0x00007f865f4c1770:
0000000000000000 00007f8648021358 0x00007f865f4c1780:
00007f865f4c1a20 00007f86480212b8 0x00007f865f4c1790:
00007f8648021430 00007f8670062581 0x00007f865f4c17a0:
00007f865f4c1820 00007f8670062376 1077 * Инструкция: (рс = 0x00007f871fdf0009) 0x00007f871fdeffe9: ФФ еь еа 0f 1f40 00 55 89 f2 48 89 e5 48 83 ec 0x00007f871fdefff9: 10 64 48 8b 04 25 28 00 00 00 48 89 45 f8 31 c0 0x00007f871fdf0009: 48 8b 07 48 8d 75 f0 ff 50 30 48 8b 4d f8 64 48 0x00007f871fdf0019: 330c 25 28 00 00 00 48 8b 45 f0 75 02 c9 c3 e8
...