[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[openoffice:10886] Re: 64bi tOS上でOpenOffi ce-2.3.1が起動しない



Javaともども、OpenOffice.org 2.3 が Fedora 8 (64ビット) で
動作するようになりました。Base も動作するようになりました。

●解決方法
 1. 以下のコマンドを実行して、libmawt.so にパッチをあてる
    sed -i 's/XINERAMA/FAKEEXTN/g' /usr/java/jre1.6.0_02/lib/i386/xawt/libmawt.so

●原因
JRE, XCB, X11 のそれぞれの陣営が原因をなすりつけ合っているような
雰囲気でして、本当のところはよくわかりませんが、どうやら、最近の
libxcb, libX11 と以前から使われている JRE との相性が悪いようです。

http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6532373
http://lists.debian.org/debian-devel-announce/2006/11/msg00010.html
http://xcb.freedesktop.org/

※ 64ビットOSというのは、今回は直接は関係なかったようです。

●現象
例えば、以下の組み合わせのとき、
jre-1.6.0_02-fcs    (OpenOffice.org 2.3 に同梱されている)
libxcb-1.0-3.fc8    (Fedora 8 の初期インストール)
libX11-1.1.3-4.fc8  (Fedora 8 の初期インストール)

JREが以下のエラーで Abort してしまいまい、その結果、javaldx が
(お気に入り)のJREが見つからないと報告してしまうようです。

cd /opt/openoffice.org2.3/program
/usr/java/jre1.6.0_02/bin/java JREProperties
java: xcb_xlib.c:50: xcb_xlib_unlock: Assertion `c->xlib.lock' failed.
Aborted

前述の解決方法の手順を行なうと、JRE が Abort しなくなり、結果的に
javaldx が期待通りに動作するようになりした。
/opt/openoffice.org2.3/program/javaldx
/usr/java/jre1.6.0_02/lib/i386/client:/usr/java/jre1.6.0_02/lib/i386/native_threads:/usr/java/jre1.6.0_02/lib/i386

OpenOffice.org の「ツール」「オプション」「OpenOffice.org」「Java」の
画面でも期待通りに JRE が選択されるようになりました。

以下の設定ファイルにも、期待通りの設定が行なわれるようになりました。
$HOME/.openoffice.org2/user/config/javasettings_Linux_x86.xml

●備考
ちなみに、JREProperties.class が出力する数値の羅列は、以下のような
コマンドで中身を確認できます。

/usr/java/jre1.6.0_02/bin/java JREProperties
106 97 118 97 46 114 117 110 116 105 109 101 46 110 97 109 101 61 74 97 118 97 40 84 77 41 32 83 69 32 82 117 110 116 105 109 101 32 69 110 118 105 114 111 110 109 101 110 116
115 117 110 46 98 111 111 116 46 108 105 98 114 97 114 121 46 112 97 116 104 61 47 117 115 114 47 106 97 118 97 47 106 114 101 49 46 54 46 48 95 48 50 47 108 105 98
....(略)...

/usr/java/jre1.6.0_02/bin/java JREProperties | perl -ne 'print join("", (map { chr } split(" ", $_))) . "\n"'
java.runtime.name=Java(TM) SE Runtime Environment
sun.boot.library.path=/usr/java/jre1.6.0_02/lib/i386
....(略)...

●補足
OpenOffice.org 2.3 (通常の32ビット版) は、以下のファイルを期待しているようです。
lib/i386/{client,server,classic}/libjvm.so

私がインストールしてみた JRE x64 に含まれている以下のファイルは、どうやら
OOo2.3が期待しているファイルではないようで、このJREについてはパッチをあてて
動作するようにしたにも係わらず、javaldx には選ばれませんでした。
lib/amd64/server/libjvm.so

というわけで、OpenOffice.org 2.3 (64ビット版)というのがあるとしたら、
それは、反対に、32ビット版の JREではなく、64ビット版の JREを期待する
みたいです。

ソースコード
http://udk.openoffice.org/source/browse/udk/jvmfwk/plugins/sunmajor/pluginlib/

Tora

【MLコミュホームページ】http://www.freeml.com/openoffice

--[PR]------------------------------------------------------------------
 
お得な保険設計をイラストで解説!!保険マンモス
http://ad.freeml.com/cgi-bin/sa.cgi?id=bxbjK
------------------------------------------------------------------[PR]--
■GMO INTERNET GROUP■ GMO INTERNET www.gmo.jp