屋上へ行こうぜ…久しぶりに…キレちまったよ… (OpenJDK 12)
…と、サラリーマン金太郎のようなセリフが出てしまったので、日記に記録を。
このカテゴリで記事を書くの11年振りなんだな… 凄くあっという間というか…
OracleのJDKライセンスが4月から色々と面倒な事になっていることから(個人利用では影響ないみたいですけど)、「それだったらOpenJDKを入れようかな…」と、まずはWindows版のJDKを入れ替えをして、その後、「そーいや、自作ゲームは問題ないかな…」と動かしたところ…

アギギ… (#゜皿 ゚) う、動かん…
「マジカヨ! こんなの調査開発を始めた2003年以来初めてダヨ!」となり、「他のOSではどうかな…」と、続いてMac OSの方を確認。

アギギギ・ギー!オンナジカヨ!(#゜皿 ゚)
「OpenJDKが糞なの?糞なの?」と思いましたが、「以前からLinux Mintの方はOpenJDKだったよな。しかも自作ゲーは昔から動いていたし…」と思い、次はLinux上で実行をしたところ…

動くじゃねーかよ、コノヤロウ!!(# ゚皿 ゚)
しかもOpenJDK 8だよコノヤロウ!(# ゚Д ゚)
となりました。
Javaについて私は現在、完全に素人化しているので(といいつつ今年の2月に仕事で中華な方の代わりに仕方なく軽くEclipseでプログラムを書いたりはしてるんだけど。(^^ゞ)キチンとデバッグするのが面倒でなんとも言えないのですが(実はコンパイルするためのAntすら今は入ってないのがホンネ。(^^ゞ)、エラーメッセージとソースコード上から対応する箇所を確認すると、
(1) Class.getClassLoader
(2) Class.getResource
(3) ToolKit.getImage
※これはjarファイルからのケース。
のメソッドのどれかに被疑がかかりました。
自作フレームワーク内部ではエラーチェックをかなりしているのですが、あまりに初歩的なものに関してはエラーチェック&ログを出してない… まさかこんな初歩レベルで実行が行えないなんて…
C言語ならprintf、STLならcoutが乗ってないようなレベルかと思うレベルです。
軽くネット検索をすると、getResourceの使い方がjarだとお作法があるとかないとか…
(ネットのマニアック技術情報というのは8割がた嘘が書いてあると「経験則があるので信憑性がない」んだよなぁ…)
その後、Windowsの方のJREを8(Oracleのサポートする無償最新版)にしたところ、自作ゲームは問題なく動きました。
ということは、OpenJDK 8より上が厳しいんだな…
自作ゲームはたまに思い出したかのようにプレーするので(自画自賛だけど、プレーしてて楽しい♪)、将来プログラムが完全に動かせない時代がきたらメンテするか… (他の言語にポーティングするのもアリか)
とりあえずダウンロードサイトの方は今は誰が落として動かしているかも分からないようなものになっているので、サイトの方は放置でw
しっかし、アッパーコンパチを守らなかった時点で「OpenJDK 12は糞」だな。(これがバグだったら仕方ないけど)
Firefox Quantumの時と同じこと言うけど、「Oracle技術者のトップにド素人がいるのか?」と思うことにします。
このカテゴリで記事を書くの11年振りなんだな… 凄くあっという間というか…
OracleのJDKライセンスが4月から色々と面倒な事になっていることから(個人利用では影響ないみたいですけど)、「それだったらOpenJDKを入れようかな…」と、まずはWindows版のJDKを入れ替えをして、その後、「そーいや、自作ゲームは問題ないかな…」と動かしたところ…

アギギ… (#゜皿 ゚) う、動かん…
「マジカヨ! こんなの調査開発を始めた2003年以来初めてダヨ!」となり、「他のOSではどうかな…」と、続いてMac OSの方を確認。

アギギギ・ギー!オンナジカヨ!(#゜皿 ゚)
「OpenJDKが糞なの?糞なの?」と思いましたが、「以前からLinux Mintの方はOpenJDKだったよな。しかも自作ゲーは昔から動いていたし…」と思い、次はLinux上で実行をしたところ…

動くじゃねーかよ、コノヤロウ!!(# ゚皿 ゚)
しかもOpenJDK 8だよコノヤロウ!(# ゚Д ゚)
となりました。
Javaについて私は現在、完全に素人化しているので(といいつつ今年の2月に仕事で中華な方の代わりに仕方なく軽くEclipseでプログラムを書いたりはしてるんだけど。(^^ゞ)キチンとデバッグするのが面倒でなんとも言えないのですが(実はコンパイルするためのAntすら今は入ってないのがホンネ。(^^ゞ)、エラーメッセージとソースコード上から対応する箇所を確認すると、
(1) Class.getClassLoader
(2) Class.getResource
(3) ToolKit.getImage
※これはjarファイルからのケース。
のメソッドのどれかに被疑がかかりました。
自作フレームワーク内部ではエラーチェックをかなりしているのですが、あまりに初歩的なものに関してはエラーチェック&ログを出してない… まさかこんな初歩レベルで実行が行えないなんて…
C言語ならprintf、STLならcoutが乗ってないようなレベルかと思うレベルです。
軽くネット検索をすると、getResourceの使い方がjarだとお作法があるとかないとか…
(ネットのマニアック技術情報というのは8割がた嘘が書いてあると「経験則があるので信憑性がない」んだよなぁ…)
その後、Windowsの方のJREを8(Oracleのサポートする無償最新版)にしたところ、自作ゲームは問題なく動きました。
ということは、OpenJDK 8より上が厳しいんだな…
自作ゲームはたまに思い出したかのようにプレーするので(自画自賛だけど、プレーしてて楽しい♪)、将来プログラムが完全に動かせない時代がきたらメンテするか… (他の言語にポーティングするのもアリか)
とりあえずダウンロードサイトの方は今は誰が落として動かしているかも分からないようなものになっているので、サイトの方は放置でw
しっかし、アッパーコンパチを守らなかった時点で「OpenJDK 12は糞」だな。(これがバグだったら仕方ないけど)
Firefox Quantumの時と同じこと言うけど、「Oracle技術者のトップにド素人がいるのか?」と思うことにします。
コメント
さっぱりわからんが、私も被害者
あー。9でもうダメなんですね
> あってるかは知りませんです。情報の1つとしてご覧くださいませ。
こちらとしても結果はNGと出ているので、合ってます。
ただ、API仕様を追うのが面倒…というか時間を割く優先度(というか重い腰を上げる優先度)が低いのがなんともって感じです。
記事の通り、ギリギリまで問題のクラスとメソッドを追い込んでいるので、後はビルド環境を作れば内部でバージョンチェックして別の方法で回避できるかなぁ~って思ってます。ただ、その実装ってダサいなぁ~と。
Javaって「Write once, run anywhere」でしょ…と。
こちらとしても結果はNGと出ているので、合ってます。
ただ、API仕様を追うのが面倒…というか時間を割く優先度(というか重い腰を上げる優先度)が低いのがなんともって感じです。
記事の通り、ギリギリまで問題のクラスとメソッドを追い込んでいるので、後はビルド環境を作れば内部でバージョンチェックして別の方法で回避できるかなぁ~って思ってます。ただ、その実装ってダサいなぁ~と。
Javaって「Write once, run anywhere」でしょ…と。
そんな売りだったね
>Javaって「Write once, run anywhere」でしょ…と。
あったね、そういえば。あれはoracleの前だったと思うけどwww
あったね、そういえば。あれはoracleの前だったと思うけどwww
コメントの投稿
で、そのOracleJavaですが、8と9で互換性が無い。というのがわかってます。仕事で使っているツールが動かないのですよ。で、12でしょ?そりゃぁもう・・・OpenJDKも8を使わないとダメっぽいと思うの。
なんだかんだでOracleJavaがデファクトスタンダードなんだなーと思った次第。
まぁ、MySQLはPostgreSQLに置き換わりつつありますけども(こっちはGPL問題か?(何かと混ざっているような気もする))
と言ってみます。あってるかは知りませんです。情報の1つとしてご覧くださいませ。