我有多个Solaris 10主机都使用Java 7正常运行并运行。我无法获得Java 8的任何味道来处理我的应用程序或主机上的其他Java应用程序。
它在启动时失败,并编写致命的错误日志。HS_ERR_PID*文件指示崩溃发生在本机代码中的Java虚拟机外面,并指向libxi.so.so.5库xlistinputdevices方法。
我在互联网上发现了一些(很少(提到的,其中大多数表明这个问题已有5年的历史 - 但是我没有找到任何解决方案和引用此问题的错误,但它仍然是开放和不活动的。这告诉我有人在Solaris 10上使用Java 8(SPARC(,因此必须有希望。
有什么建议?
#
# A fatal error has been detected by the Java Runtime Environment:
#
# SIGBUS (0xa) at pc=0xfffffffec8c05264, pid=24057, tid=0x0000000000000003
#
# JRE version: Java(TM) SE Runtime Environment (8.0_131-b11) (build 1.8.0_131-b11)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (25.131-b11 mixed mode solaris-sparc compressed oops)
# Problematic frame:
# C [libXi.so.5+0x5264] XListInputDevices+0x3c8
#
# Core dump written. Default location: /opt/cds/dataSyncPlus_1.2.2b/bin/core or core.24057
#
# 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.
#
...
Stack: [0xffffffff7ab00000,0xffffffff7ac00000], sp=0xffffffff7abfd160, free space=1012k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
C [libXi.so.5+0x5264] XListInputDevices+0x3c8
C [libawt_xawt.so+0x301b8] getNumButtons+0x60
C [libawt_xawt.so+0x3012c] Java_sun_awt_X11_XToolkit_getNumberOfButtonsImpl+0x3c
j sun.awt.X11.XToolkit.getNumberOfButtonsImpl()I+0
j sun.awt.X11.XToolkit.getNumberOfButtonsImpl()I+0
j sun.awt.X11.XToolkit.getNumberOfButtons()I+10
j sun.awt.X11.XToolkit.initializeDesktopProperties()V+102
j java.awt.Toolkit.getDesktopProperty(Ljava/lang/String;)Ljava/lang/Object;+32
j sun.swing.SwingUtilities2$AATextInfo.getAATextInfo(Z)Lsun/swing/SwingUtilities2$AATextInfo;+11
j javax.swing.plaf.metal.MetalLookAndFeel.initComponentDefaults(Ljavax/swing/UIDefaults;)V+12062
...
更新:
我的Solaris主机被绞尽脑汁,我总是从桌子的终端通过SSH跑步。正如我所说,这对Java 7以及我所做的其他一切都很好。对于测试,我去了服务器,并尝试了直接连接到主机的KVM,Java 8工作正常。因此,并不是说这应该使任何失败的人都感到惊讶,但这确实是一个相关的问题。
我不确定这些其他信息如何对我有帮助。
这看起来像Solaris 10 libxi在Oracle Bug 177750760下报告的堆栈跟踪,应通过安装Solaris 10补丁#119059-69(SPARC(或#119060-68(#119060-68((x86(或更高版本。
这是Java中的一个错误,已知问题https://bugs.openjdk.java.java.net/browse/browse/jdk-7028364它仍然处于开放状态。如果您正在使用-d64in vm参数删除并重试。