我有多个Solaris 10主机都在使用Java 7正常运行。 我无法使用任何Java 8来使用我的应用程序或我在主机上的其他Java应用程序。
启动失败并写入致命错误日志。 hs_err_pid *文件指示在本机代码中发生在Java虚拟机之外的崩溃,它指向libXi.so.5库XListInputDevices方法。
我在互联网上发现了一些(很少)提到这个,大多数都表明这个问题超过5年 - 但我没有找到任何解决方案,而且引用它的错误仍然是开放和不活跃的。这告诉我有人在Solaris 10(sparc)上使用Java 8,所以必须有希望。
有什么建议吗?
#
# 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工作正常。所以,这不应该让任何基于失败的库的人感到惊讶,但这确实是一个与X相关的问题。
我不确定这些额外信息对我有何帮助。
答案 0 :(得分:2)
这看起来像Oracle Bug 17750760下的Solaris 10 libXi中报告的堆栈跟踪,应通过安装Solaris 10补丁#119059-69(SPARC)或#119060-68(x86)或更高版本来修复。
答案 1 :(得分:1)
这是Java中的一个错误,已知问题https://bugs.openjdk.java.net/browse/JDK-7028364它仍处于打开状态。如果您使用-d64in vm参数,请删除并重试。