OracleはJava 7/8を15年前の技術で作ってるっぽい?

jver

Windows 2000 や XP に Java 8 をインストールすると、毎回 Java アプリ起動時に jp2launcher.exe が 『プロシージャ エントリポイント QueryFullProcessImageNameA が ダイナミックリンクライブラリ KERNEL32.DLLから見つかりません』とかたわごとをいうので。 Windows 2000に該当 関数を実装してみました。

Windows 2000でQueryFullProcessImageNameっぽい関数を作る

以前作った関数を KERNEL32.DLL 組み込むわけですが、Windows 9x なんてとうに絶滅したはずのいまいまだに、 ANSI ベースの QueryFullProcessImageNameA だけで Windows Vista 以降の 関数を使った機能を作る Oracle はもう、だめなんじゃないですかね?

          jz     L004054C2
          push    [ebp-7Ch]
          push    ebx
          push    edi
          call    esi
          cmp    eax,ebx
          jz     L004054C2
          lea    ecx,[ebp-78h]
          push    ecx
          lea    ecx,[ebp+000003C8h]
          push    ecx
          push    ebx
          push    eax
          mov    dword ptr [ebp-78h],00000104h
          call    [KERNEL32.dll!QueryFullProcessImageNameA]

さらに 逆アセンブルしてわかることは、 Java 8 は MAX_PATH (260 文字)までに基づいてプログラミングされている。つまり、260文字以上のNTFSのPATHには対応できないということです。(眩暈)

コンシューマ向け製品なら別にそれでも構わないのだが、これは基幹システムなどでも使われるエンタープライズ製品のファミリーだということです。
こういう綻びがあちこちにあって、オーバーフローやら引き起こしてるんじゃないんでしょうかね

今どき、ANSIベースでプログラム組むなら、Windows 98とか、レガシーOSもサポートしてるつもりなんでしょうか?
真新しい機能だけ盛り込んでベースが15年前の技術で不安定なんじゃ…新しくする意味なんてないと思います

最新OSだけサポートしてコスト削減しつつ、技術力は15年前と変わってない
だから以前よりセキュリティーホールが多いJava バージョンリリースしてる

…なんて思っちゃいますね

くだらない広告アプリ導入する位なら、もうちょっと自社の技術を振り返ってみてはどうなんでしょうかね・ω・

No more Oracle !

とりあえず、ここに v2.4d2 を置いておきます
Windows 2000 Kernel32 改造計画【BM】

OracleはJava 7/8を15年前の技術で作ってるっぽい?

jver

Windows 2000 や XP に Java 8 をインストールすると、毎回 Java アプリ起動時に jp2launcher.exe が 『プロシージャ エントリポイント QueryFullProcessImageNameA が ダイナミックリンクライブラリ KERNEL32.DLLから見つかりません』とかたわごとをいうので。 Windows 2000に該当 関数を実装してみました。

Windows 2000でQueryFullProcessImageNameっぽい関数を作る

以前作った関数を KERNEL32.DLL 組み込むわけですが、Windows 9x なんてとうに絶滅したはずのいまいまだに、 ANSI ベースの QueryFullProcessImageNameA だけで Windows Vista 以降の 関数を使った機能を作る Oracle はもう、だめなんじゃないですかね?

          jz     L004054C2
          push    [ebp-7Ch]
          push    ebx
          push    edi
          call    esi
          cmp    eax,ebx
          jz     L004054C2
          lea    ecx,[ebp-78h]
          push    ecx
          lea    ecx,[ebp+000003C8h]
          push    ecx
          push    ebx
          push    eax
          mov    dword ptr [ebp-78h],00000104h
          call    [KERNEL32.dll!QueryFullProcessImageNameA]

さらに 逆アセンブルしてわかることは、 Java 8 は MAX_PATH (260 文字)までに基づいてプログラミングされている。つまり、260文字以上のNTFSのPATHには対応できないということです。(眩暈)

コンシューマ向け製品なら別にそれでも構わないのだが、これは基幹システムなどでも使われるエンタープライズ製品のファミリーだということです。
こういう綻びがあちこちにあって、オーバーフローやら引き起こしてるんじゃないんでしょうかね

今どき、ANSIベースでプログラム組むなら、Windows 98とか、レガシーOSもサポートしてるつもりなんでしょうか?
真新しい機能だけ盛り込んでベースが15年前の技術で不安定なんじゃ…新しくする意味なんてないと思います

最新OSだけサポートしてコスト削減しつつ、技術力は15年前と変わってない
だから以前よりセキュリティーホールが多いJava バージョンリリースしてる

…なんて思っちゃいますね

くだらない広告アプリ導入する位なら、もうちょっと自社の技術を振り返ってみてはどうなんでしょうかね・ω・

No more Oracle !

とりあえず、ここに v2.4d2 を置いておきます
Windows 2000 Kernel32 改造計画【BM】

おすすめ

1件の返信

  1. Rufus より:

    本当に”黒い神託(Oracle)”って、Java に限らず、他所から分捕って来たものを駄目にする事にかけては超一流ですよね。
    OpenOffice.org 然り、MySQL 然り・・・
    某”黒林檎”とは異なるベクトルで真っ黒・・・

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です