gpt4 book ai didi

Java 1.6 -> 1.7 JNLP = SIGSEGV

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:28:39 27 4
gpt4 key购买 nike

当我尝试在 Java 1.6(1.6.0_36) 的 Red Hat Enterprise Linux Server 6.4 (Santiago) 应用程序中运行 JNLP 时,我得到:

[wojtek@rcmtex05 ~]$ strace -e open
/opt/tex/lib/java/jdk1.6.0_35/bin/javaws
/tmp/app.jnlp >>
/home/wojtek/6.txt open("/etc/ld.so.cache", O_RDONLY) = 3
open("/usr/lib64/libX11.so.6", O_RDONLY) = 3
open("/lib64/libnsl.so.1", O_RDONLY) = 3 open("/lib64/libc.so.6",
O_RDONLY) = 3 open("/lib64/libdl.so.2", O_RDONLY) = 3
open("/usr/lib64/libxcb.so.1", O_RDONLY) = 3
open("/usr/lib64/libXau.so.6", O_RDONLY) = 3
open("/etc/nsswitch.conf", O_RDONLY) = 3 open("/etc/ld.so.cache",
O_RDONLY) = 3 open("/lib64/libnss_files.so.2", O_RDONLY) = 3
open("/etc/passwd", O_RDONLY|O_CLOEXEC) = 3
open("/home/wojtek/.java/deployment/deployment.properties", O_RDONLY)
= 3 open("/usr/lib/locale/locale-archive", O_RDONLY) = 3 open("/usr/lib64/gconv/gconv-modules.cache", O_RDONLY) = 3

但是当我尝试使用 Java 1.7 (1.7.0_65-b17) 运行相同的应用程序时,结果是不同的:

[wojtek@rcmtex05 ~]$ strace -e open
/opt/tex/lib/java/jdk1.7.0_65/bin/javaws
/tmp/app.jnlp
open("/etc/ld.so.cache", O_RDONLY) = 3
open("/usr/lib64/libX11.so.6", O_RDONLY) = 3
open("/lib64/libnsl.so.1", O_RDONLY) = 3 open("/lib64/libdl.so.2",
O_RDONLY) = 3 open("/lib64/libm.so.6", O_RDONLY) = 3
open("/lib64/libc.so.6", O_RDONLY) = 3
open("/usr/lib64/libxcb.so.1", O_RDONLY) = 3
open("/usr/lib64/libXau.so.6", O_RDONLY) = 3
open("/etc/nsswitch.conf", O_RDONLY) = 3 open("/etc/ld.so.cache",
O_RDONLY) = 3 open("/lib64/libnss_files.so.2", O_RDONLY) = 3
open("/etc/passwd", O_RDONLY|O_CLOEXEC) = 3 open("/etc/localtime",
O_RDONLY) = 3 open("/etc/ld.so.cache", O_RDONLY) = 3
open("/usr/lib64/libgtk-x11-2.0.so.0", O_RDONLY) = 3
open("/usr/lib64/libgdk-x11-2.0.so.0", O_RDONLY) = 3
open("/usr/lib64/libgdk_pixbuf-2.0.so.0", O_RDONLY) = 3
open("/usr/lib64/libpangocairo-1.0.so.0", O_RDONLY) = 3
open("/usr/lib64/libXfixes.so.3", O_RDONLY) = 3
open("/usr/lib64/libatk-1.0.so.0", O_RDONLY) = 3
open("/usr/lib64/libcairo.so.2", O_RDONLY) = 3
open("/lib64/libgio-2.0.so.0", O_RDONLY) = 3
open("/usr/lib64/libpangoft2-1.0.so.0", O_RDONLY) = 3
open("/usr/lib64/libpango-1.0.so.0", O_RDONLY) = 3
open("/usr/lib64/libfontconfig.so.1", O_RDONLY) = 3
open("/lib64/libgobject-2.0.so.0", O_RDONLY) = 3
open("/lib64/libgmodule-2.0.so.0", O_RDONLY) = 3
open("/lib64/libglib-2.0.so.0", O_RDONLY) = 3
open("/usr/lib64/libXext.so.6", O_RDONLY) = 3
open("/usr/lib64/libXrender.so.1", O_RDONLY) = 3
open("/usr/lib64/libXinerama.so.1", O_RDONLY) = 3
open("/usr/lib64/libXi.so.6", O_RDONLY) = 3
open("/usr/lib64/libXrandr.so.2", O_RDONLY) = 3
open("/usr/lib64/libXcursor.so.1", O_RDONLY) = 3
open("/usr/lib64/libXcomposite.so.1", O_RDONLY) = 3
open("/usr/lib64/libXdamage.so.1", O_RDONLY) = 3
open("/usr/lib64/libpng12.so.0", O_RDONLY) = 3
open("/usr/lib64/libfreetype.so.6", O_RDONLY) = 3
open("/usr/lib64/libpixman-1.so.0", O_RDONLY) = 3
open("/lib64/libz.so.1", O_RDONLY) = 3
open("/lib64/libresolv.so.2", O_RDONLY) = 3
open("/lib64/libselinux.so.1", O_RDONLY) = 3
open("/lib64/libexpat.so.1", O_RDONLY) = 3
open("/usr/lib/locale/locale-archive", O_RDONLY) = 3
open("/usr/share/locale/locale.alias", O_RDONLY) = 3
open("/usr/share/locale/en_US.UTF-8/LC_MESSAGES/messages.mo",
O_RDONLY) = 3 open("/usr/lib64/gconv/gconv-modules.cache", O_RDONLY) =
3 open("/usr/share/locale/en_US.UTF-8/LC_MESSAGES/gtk20.mo", O_RDONLY)
= 3 open("/usr/share/locale/en_US.utf8/LC_MESSAGES/gtk20.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/en_US/LC_MESSAGES/gtk20.mo", O_RDONLY) = -1
ENOENT (No such file or directory)
open("/usr/share/locale/en.UTF-8/LC_MESSAGES/gtk20.mo", O_RDONLY) = -1
ENOENT (No such file or directory)
open("/usr/share/locale/en.utf8/LC_MESSAGES/gtk20.mo", O_RDONLY) = -1
ENOENT (No such file or directory)
open("/usr/share/locale/en/LC_MESSAGES/gtk20.mo", O_RDONLY) = -1
ENOENT (No such file or directory)
open("/usr/share/X11/locale/locale.alias", O_RDONLY) = 3
open("/usr/share/X11/locale/locale.alias", O_RDONLY) = 3
open("/usr/share/X11/locale/locale.dir", O_RDONLY) = 3
open("/usr/share/X11/locale/en_US.UTF-8/XLC_LOCALE", O_RDONLY) = 3
open("/etc/passwd", O_RDONLY|O_CLOEXEC) = 3
open("/usr/share/locale/en_US.UTF-8/LC_MESSAGES/gtk20-properties.mo",
O_RDONLY) = 3
open("/usr/share/locale/en_US.utf8/LC_MESSAGES/gtk20-properties.mo",
O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/en_US/LC_MESSAGES/gtk20-properties.mo",
O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/en.UTF-8/LC_MESSAGES/gtk20-properties.mo",
O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/en.utf8/LC_MESSAGES/gtk20-properties.mo",
O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/en/LC_MESSAGES/gtk20-properties.mo", O_RDONLY)
= -1 ENOENT (No such file or directory) open("/home/wojtek/.Xauthority", O_RDONLY) = 4
open("/etc/gtk-2.0/gtkrc", O_RDONLY) = 4
open("/home/wojtek/.Xdefaults-rcmtex05", O_RDONLY) = -1 ENOENT (No
such file or directory) open("/usr/share/themes/Slider/gtk-2.0/gtkrc",
O_RDONLY) = 4
open("/usr/lib64/gtk-2.0/2.10.0/engines/libclearlooks.so", O_RDONLY) =
5 open("/usr/share/locale/en_US.UTF-8/LC_MESSAGES/libc.mo", O_RDONLY)
= 5 open("/usr/share/locale/en_US.utf8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory) open("/usr/share/locale/en_US/LC_MESSAGES/libc.mo", O_RDONLY) = -1
ENOENT (No such file or directory)
open("/usr/share/locale/en.UTF-8/LC_MESSAGES/libc.mo", O_RDONLY) = -1
ENOENT (No such file or directory)
open("/usr/share/locale/en.utf8/LC_MESSAGES/libc.mo", O_RDONLY) = -1
ENOENT (No such file or directory)
open("/usr/share/locale/en/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT
(No such file or directory)
open("/usr/share/themes/Default/gtk-2.0-key/gtkrc", O_RDONLY) = 4
open("/usr/lib64/gtk-2.0/modules/libpk-gtk-module.so", O_RDONLY) = 4
open("/etc/ld.so.cache", O_RDONLY) = 4
open("/usr/lib64/libdbus-glib-1.so.2", O_RDONLY) = 4
open("/lib64/libdbus-1.so.3", O_RDONLY) = 4
open("/lib64/libpthread.so.0", O_RDONLY) = 4 open("/lib64/librt.so.1",
O_RDONLY) = 4
open("/usr/lib64/gtk-2.0/modules/libcanberra-gtk-module.so", O_RDONLY)
= 4 open("/etc/ld.so.cache", O_RDONLY) = 4 open("/usr/lib64/libcanberra-gtk.so.0", O_RDONLY) = 4
open("/lib64/libgthread-2.0.so.0", O_RDONLY) = 4
open("/usr/lib64/libcanberra.so.0", O_RDONLY) = 4
open("/usr/lib64/libvorbisfile.so.3", O_RDONLY) = 4
open("/usr/lib64/libvorbis.so.0", O_RDONLY) = 4
open("/usr/lib64/libogg.so.0", O_RDONLY) = 4
open("/usr/lib64/libtdb.so.1", O_RDONLY) = 4
open("/usr/lib64/libltdl.so.7", O_RDONLY) = 4
open("/lib64/libcrypt.so.1", O_RDONLY) = 4
open("/lib64/libfreebl3.so", O_RDONLY) = 4
--- SIGSEGV (Segmentation fault) @ 0 (0) ---
+++ killed by SIGSEGV (core dumped) +++ Segmentation fault (core dumped)

为什么 java 1.7 会尝试加载这么多不同的新文件?

和 gdb 结果:

(gdb) exec-file /opt/tex/lib/java/jdk1.7.0_71/bin/javaws (gdb) set args /tmp/app.jnlp (gdb) run Starting program: /opt/tex/lib/java/jdk1.7.0_71/bin/javaws /tmp/app.jnlp

> Program received signal SIGSEGV, Segmentation fault. 0x00000036f85683d0 in gtk_message_dialog_format_secondary_text () from
> /usr/lib64/libgtk-x11-2.0.so.0 Missing separate debuginfos, use:
> debuginfo-install XXX-JDK-1.7.0_71-07.x86_64 (gdb)

JNLP 文件如下所示:

<?xml version="1.0" encoding="UTF-8" standalone="no"?><jnlp codebase="xxx" spec="6.0+">

<information>
<title>xxx</title>
<vendor>xxx</vendor>
<description>xxx.</description>

</information>

<security>
<all-permissions/>
</security>
<update check="timeout" policy="always"/>
<resources><extension href="file:////tmp/jvmconnector.jnlp" name="jvmconnector"/><extension href="file:////tmp/swinglibrary.jnlp" name="swinglibrary"/><extension href="file:////tmp/swinglibraryextension.jnlp" name="swinglibraryextension"/>
<j2se max-heap-size="512m" version="1.7"/>
<j2se max-heap-size="512m" version="1.6"/>


<jar href="xxx-app.jar" main="false"/>
<jar href="yy-xxx-app.jar" main="false"/>
<jar href="xxx-yyyy.jar" main="false"/>
<jar href="xx-zzzz.jar" main="false"/>

<extension xmlns:cm="xxx.xs" href="https://xxx.jnlp" name="xxx"/>

<property xmlns:pl="http://xxx.xs" name="xxx.AppURL" value="https://xxx"/>
<property name="xxx.UserName" value="xxx"/>
<extension href="xxx/client.jnlp" name="xxx"/>

<extension href="xxx/client.jnlp" name="IBM WS7 JWS"/>
<property name="xxx.httpsession.id.LtpaToken2.name" value="LtpaToken2"/>
<property name="xxx.id.LtpaToken2.path" value="/"/>
<property name="xxx.httpsession.id.JSESSIONID.name" value="JSESSIONID"/>
<property name="xxx.httpsession.id.JSESSIONID.path" value="/"/>
<property name="xxx.sysprops.url" value="https://xxx/sys-cert-ssl.properties"/>
<property name="jnlp.java.naming.provider.url" value="{$corbaloc:iiop:xxx:9810}"/>

<extension xmlns:mp="http://xxx.xs" href="xxx.jnlp" name="Mercury Client Libs"/>

<extension xmlns:nl="http://xxx.xs" href="xxx.jnlp"/>


<property name="xxx" value="xxx"/>
<property name="jnlp.com.ibm.CORBA.Debug.Output" value="nul"/>
</resources>

<application-desc main-class="RMILauncher"><argument>/tmp/RMIStartswingLibrary2015-06-08-12-24-5633.xml2682499309750982226.xml</argument><argument>xxx</argument>
<argument>-appbase</argument>
<argument>xxx-app.jar</argument>

<argument>-xxx</argument>

<argument>-startapp</argument>
<argument>xxx.Application</argument>
<argument>-Pxxx.id.JSESSIONID=xxx</argument><argument>-xxx.LtpaToken2=xxx</argument><argument>-Pxx.id.LtpaToken=</argument>
</application-desc>

</jnlp>

最佳答案

解决方案是:将任何参数添加到 javaws(例如 -J 或 -Verbose)。

参见 https://superuser.com/questions/854293/java-web-start-seg-faults-when-run-with-no-arguments

关于Java 1.6 -> 1.7 JNLP = SIGSEGV,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30713484/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com