Sun Microsystems による最新の Java IDE「Java Workshop 2.0」 で遊ぶ試み
Java Workshop 2.0
- Sun Microsystems という,かつて Java を作っていた会社がある。
- Java SE 1.2 の時代に出していた「Java Workshop 2.0」という Java 用 IDE のパッケージ版を入手した。
- Windows 11 で動かして, Java 1.2 を楽しみたい。
インストールを試みる
CPU は Intel Core i7 14700Kで,メモリーも 32GB ほど, ディスクに至っては 4 TB ほど空いている。
OS はMicrosoft Windows 95 か Windows NT 4.0 があれば良いらしい。
なるほど,これは一筋縄ではいかないみたいだ。
知ってた。相当古いバイナリであることは知っていたが,「せいぜい互換モードを使えばなんとかなるだろう」程度に思っていた。甘かったようだ。
とりあえず,何も考えずに汎用ファイルアナライザ「青い空を見上げればいつもそこに白い猫」に掛けてみた。
なるほど,どうやらこれは 16 bit のバイナリのようだ(私は NT やネイティブについてあまり詳しく無いので,ツメの甘い部分があったら見逃してほしい…)。
GPT-5(以下,チャッピー)に聞いてみたところ,WineVDM(OTVDM) なるソフトウエアを使えば良いらしいので,そうしてみる。
おおお!
遂に…遂にか…?と思って暫く凝視してみたが,何故か進捗が 47% から進まない上に,1分程で落ちてしまう。
ぐぬぬ。
タスクマネージャで「Install」 的な単語を入れていると,次の項目を見つけた。
なるほど,どうやらこいつが悪さをしているようだ。
とりあえず拡張子を .EXE に変更 -> 互換モードをオン -> ._MP に戻す,といったことをしたが,解決しなかった。
暫く調べていると,Microsoft が「16 ビット InstallShield サポート パッケージ」なるものを出しているのを発見した。
これを入れてもう一度試してみる。
version: 2446
b91c:fixme:module:LoadModule_wine_implementation Strange error set by CreateProcess: 740
f8b0:err:file:RedirectDriveRoot c:\stopthis.now => C:\OTVDM-~1.0\c\stopthis.now
f8b0:err:file:RedirectDriveRoot c:\stopthis.now => C:\OTVDM-~1.0\c\stopthis.now
ぐぬぬ。
740 エラーということは,管理者権限で実行する必要があるみたいだ。
しかしながら,もう既に SETUP.EXE を管理者権限で走らせているうえに,Microsoft のアレを入れてからは _INS0432._MP
の開始前にも例のダイアログが出てくるように成っている。
うーむ。どうしたものか。
その後色々試したが,全くダメだった。
謎海外サイトに落ちていた 16bitインストーラを 32bit にするやつを動かしてみようとしたところ,PC に入れていた Norton が働いた。
どうやら,Norton CyberCapture なる機能があり,これはPC内で始めて動作するプログラムをサンドボックス内で走らせるとともに,その動作をヒューリスティック解析するものである。
暫く放置していたところ,急にセットアップウィンドウが立ち上がった。
とりあえず動くことは分かったので,どうにかしてPCにインストールしたい所存である。
正攻法を諦めた。
今持っているファイルから,バイナリ等々を抜き出そうと思う。
これらの中で WorkStation 本体が入っているファイルは,大きさ的に DATA.Z
ファイルだろうか。
というわけで,軽く調べてみたところ…
(GitHub: wfr/unshieldv3 より)
なるほど,どうやらこれは 「InstallShield Z format」なるフォーマットらしい。
ということで,適当な Python スクリプトを落として実行したところ,WorkStation のファイルを得られた。
$ python .\idecompy.py .\DATA.Z
Date Time OrigSize Attr CompSize Name
======== ===== ======== ==== ======== ====
97-10-27 23:45 182 A___ 151 readme.txt
97-09-18 11:55 85303 A___ 30401 JDK\CHANGES
97-09-17 02:34 20480 A___ 7874 JDK/bin\agent.dll
97-09-17 02:34 22528 A___ 7655 JDK/bin\agent_g.dll
97-09-17 02:34 6144 A___ 2400 JDK/bin\appletviewer.exe
97-09-17 02:34 6144 A___ 2356 JDK/bin\appletviewer_g.exe
97-09-17 02:34 5120 A___ 1475 JDK/bin\jar.exe
97-09-17 02:34 5120 A___ 1493 JDK/bin\jar_g.exe
97-09-17 02:34 6144 A___ 2074 JDK/bin\java-rmi.cgi
97-09-17 02:34 6144 A___ 2077 JDK/bin\java-rmi_g.cgi
97-09-17 02:33 5120 A___ 1404 JDK/bin\java.exe
97-09-17 02:34 5632 A___ 1863 JDK/bin\javac.exe
...
(GitHub: lephilousophe/idecomp を使用した。)
いろいろ楽しそうなファイルがある。
JavaWorkShop が入ったら ぜひ fastjavac.exe
を真っ先に試してみたい。
SUN だぁ。
果たして製品登録はできるのだろうか。とりあえず入力してみる。
アンケートもしっかり入力してみた。
「Register」!!
…
…
しってた。
なんか色々起動した。
とりあえず,緑色の「▶」ボタンを押してみる。
おおお!
んー,プログラムを実行した瞬間に IDE のほうが落ちてしまう。。。
コアダンプを見てみる
コアダンプ全文
FILE_IN_CAB: jws.exe.20448.dmp
NTGLOBALFLAG: 0
APPLICATION_VERIFIER_FLAGS: 0
CONTEXT: (.ecxr)
eax=0000000a ebx=0403c400 ecx=047c7410 edx=00030190 esi=047c7160 edi=063ffecc
eip=00000000 esp=063fed64 ebp=063fed80 iopl=0 nv up ei pl zr na pe nc
cs=0023 ss=002b ds=002b es=002b fs=0053 gs=002b efl=00010246
00000000 ?? ???
Resetting default scope
EXCEPTION_RECORD: (.exr -1)
ExceptionAddress: 00000000
ExceptionCode: c0000005 (Access violation)
ExceptionFlags: 00000000
NumberParameters: 2
Parameter[0]: 00000000
Parameter[1]: 00000000
Attempt to read from address 00000000
PROCESS_NAME: jws.exe
READ_ADDRESS: 00000000
ERROR_CODE: (NTSTATUS) 0xc0000005 - The instruction at 0x%p referenced memory at 0x%p. The memory could not be %s.
EXCEPTION_CODE_STR: c0000005
EXCEPTION_PARAMETER1: 00000000
EXCEPTION_PARAMETER2: 00000000
IP_ON_HEAP: 04355fd0
The fault address in not in any loaded module, please check your build's rebase
log at <releasedir>\bin\build_logs\timebuild\ntrebase.log for module which may
contain the address if it were loaded.
FRAME_ONE_INVALID: 1
STACK_TEXT:
WARNING: Frame IP not in any known module. Following frames may be wrong.
063fed60 04355fd0 04355ff8 00000000 04355fd8 0x0
063fedac 054ccfe7 04355fd0 04355f28 00000000 0x4355fd0
063fedd0 054cb45d 04355fd0 07db5e50 00000003 sunwjit!java_lang_Compiler_start+0x1af47
063fee0c 054b1ed0 04355fd0 07db5e50 00000003 sunwjit!java_lang_Compiler_start+0x193bd
063fee30 1004832a 04355fd0 07db5e50 00000003 sunwjit+0x1ed0
00000000 00000000 00000000 00000000 00000000 javai!set_single_stepping+0x1181a
FAILED_INSTRUCTION_ADDRESS:
+0
SYMBOL_NAME: sunwjit+1cfe7
MODULE_NAME: sunwjit
IMAGE_NAME: sunwjit.dll
STACK_COMMAND: dt ntdll!LdrpLastDllInitializer BaseDllName ; dt ntdll!LdrpFailureData ; ~6s; .ecxr ; kb
FAILURE_BUCKET_ID: INVALID_POINTER_READ_c0000005_sunwjit.dll!Unknown
OS_VERSION: 10.0.26100.1
BUILDLAB_STR: ge_release
OSPLATFORM_TYPE: x86
OSNAME: Windows 10
FAILURE_ID_HASH: {5247ec4e-517a-345e-3f38-0cc61d2e1de4}
Followup: MachineOwner
---------
モジュール sunwjit
で良くないことが起きているらしい。JIT を無効化すればいいのかナ?