[OpenBlockS Users page]
[Subject Prev][Subject Next][Thread Prev][Thread Next][Subject Index][Thread Index]

[obu:00257] OpenBlockS で Java が動きました!


関根です。

とりあえずOpenBlockSでJavaが動きましたのでご報告いたします。
が、、、めちゃ遅です。(まぁデーモンみたいに一度起動させちゃえば問題ないかも^^;)

■試したPPC版JDK:j2sdk1.3(↓から落としてきたもの)
    http://www.blackdown.org/java-linux/ports.html

○動作環境
    CFブート後、HDDをマウントして、hdrootアーカイブ・セルフ開発環境を流用。

○発生するエラーと原因
    ・glibc-2.1.3環境を必要とするPPC版のj2sdk1.3が、デフォルトでLinuxのネイ
        ティブスレッドモードで動作するため、glibc-2.1.2環境の現バージョンのhdroot
        アーカイブ及びCFルートイメージでは不具合が発生します。
        (libpthread.so〜でシンボルが見つからないとか、Segmentation Faultが起きるとか…)

    ・また、PPC版のJDKが前提としているLINUXppc.orgのstable版のディストリビ
        ューションはglibc-2.13環境で作成されており、現バージョンのOpenBlockSの
        hdrootアーカイブとは混在できないようです。
        (LD_LIBRARY_PATH攻撃、通用せず!libc.soとかも書き換えてみましたが…)

    ※LINUXppc.orgのピュアなrootイメージでOpenBlockSがもし起動できる場合
        にj2skd1.3が問題なく動作するかは不明。

○対処
    ・ネイティブスレッドを使用しないように、環境変数 "THREADS_FLAG" を "green"
        に設定して実行すれば動作します。ひょっとすると他のバージョンでも通用するかも。
        bashなら、以下を実行。
---
THREADS_FLAG=green
export THREADS_FLAG
---

○課題
    ・効率が良いとされているネイティブスレッドを使うには、OpenBlockSのhdrootアー
        カイブやCFルートイメージを完全にglibc-2.1.3以上で作成する必要があるようです。

○実行結果
    めちゃくちゃ遅いです。下記のHelloWorldプログラムをコンパイル&実行してみま
    したが、TomcatでJSPだなんて夢のまた夢です…。^^;
    J2MEレベルじゃないと非力なOpenBlockSではかなり厳しいかもしれません。

---
[ksekine ~/src/java]$ time java Hello
HelloWorld
Hello
real    0m10.717s
user    0m5.640s
sys     0m2.810s
---

---
/*
 * Hello.java
 */
public class Hello{
    public static void main(String args[]){
        System.out.println("HelloWorld");//標準出力したあと、改行する。
        System.out.print("H");//標準出力したあと、改行されない。
        System.out.print("e");
        System.out.print("l");
        System.out.print("l");
        System.out.print("o");
    }
}
---

---
関根 和寿
ksekine@xxxxxxxxxxxxxxx
http://pine.zero.ad.jp/~zaa52609/

この情報があなたの探していたものかどうか選択してください。
yes/まさにこれだ!   no/違うなぁ   part/一部見つかった   try/これで試してみる

あなたが探していた情報はどのようなことか、ご自由に記入下さい。特に「まさにこれだ!」と言う場合は記入をお願いします。
例:「複数のマシンからCATV経由でipmasqueradeを利用してWebを参照したい場合の設定について」