人気ブログランキング | 話題のタグを見る

[PC Java] OpenJDK > Oracle OpenJDK > Oracle JDK [Android] (1/28)

以下のサーマルプリンタの記事で、クリップボードの画像データを二値化して欲しかったので、"クリップボード 二値化"で検索したところ、ImageJというJavaで動くソフトウェアがあった。

Javaはオラクル社が有償化した嫌な思い出しかなかったので、アンインストールしてしまったが、最近はどうなっているのか調べた。

こちらのサイト様によると、2018年にJava 8でオラクルが商用利用を有償化するまで、ずっとOpenJDKというのでオープンソース化しており、それがJavaの規格を決めている。なのでJava 8までのPC用Javaは、オラクル社に縛られているが、それ以降は無料を自分でリビルドしてJavaを取得できる。今はJava 15まで進んでいる。

構成図(https://www.javadrive.jp/start/install/img/p5-3.png)


2番目のページ末尾の構成図で、結局、オラクルも商用と無料に分かれており、OpenJDKから両方ともビルドして作っている。
そして商用はUbuntuと同じように長期間サポートが付いていて、無料は6ヵ月単位でOpenJDKからソースを持ってきてリビルドしている。
(なので長期間サポート側はバイナリの動きがその期間中はバグも含めて同じだが、無料はバイナリが違うからバグがあれば修正されて動きが変化する事もあり得る)

個人で使う、または商用利用でもOpenJDKの規格に基づいて動作する事が許されるなら、オラクルでビルドした無料版でいい。

【タイトルのまぎらわしい用語】
◆OpenJDK・・・世界のJava規格を決めているオープンソース
◆Oracle社・・・OpenJDKからソースを取り込んで、商用のJavaをサポート付きで販売。無料版はビルドはするがサポート無し。
◆Oracle OpenJDK・・・商用利用も無料の、OpenJDKからソースを6ヵ月ごとに取り込んで、Oracle社がビルドしたサポート無しのJava。
◆Oracle JDK・・・商用利用が有償の、上記 Oracle OpenJDK の長期サポート版。ビルドするタイミングはJavaの大きなバージョンアップやリビジョンアップ毎なので、2~4年ぐらいか。

なので、3番目の商用利用も無料でサポート無しの 「Oracle OpenJDK」をインストールする。

【ダウンロード】

※Google社のAndroid SDKもOpenJDKからの派生。
※JDKはJava SE(Standard Edition)の番号。Java SEはWindows10でいうHomeで、Java EEがエンタープライズ版。OpenJDKがJava EEの規格も決めているが、Java EEはバージョン番号はどうなっているのかな。

【インストール】
JDK 15
【環境変数】
JAVA_HOME
PATH

これらを上記の「OpenJDKについてのサイト様」の4ページ目に従って設定する。
PATHの設定及び環境変数JAVA_HOMEの設定 | Java入門

【ImageJ 実行】
コンソールから、
Java -jar ijj.jar
[PC Java] OpenJDK > Oracle OpenJDK > Oracle JDK [Android] (1/28)_a0034780_14365809.jpg

【クリップボード画像取得】
ImageJの[メニュー]-[ファイル]-[新規]-[クリップボード(システム側)から作成] Ctrl+Shift+V

【二値化】
[メニュー]-[画像処理]-[二値化]-[二値化する]

【実行結果】
[PC Java] OpenJDK > Oracle OpenJDK > Oracle JDK [Android] (1/28)_a0034780_14575772.jpg
・・・-[二値化]-[二値化設定]
・・・-[二値化設定]-[ヘルプ]:以下Webページが開く

Javaの開発環境は昔Eclipseとか使ってたけど、最近はどうなのかな~



Commented by かわぽぬ at 2021-01-29 08:00
OpenJDKの中でも、AdoptOpenJDKは、IBM、AWS、Microsoftがスポンサーなので、開発も活発で、定評があります。
Eclipseや、NetBeansは、古さが目立ってきているので、有償ですが強力なIntelliJ IDEAを使う人が多くなっていると感じてます。
また、Android Studioは、無償ですが、IntelliJ IDEAがベースになっているので、Eclipse時代より、扱いが容易になりました。
Javaでの開発については、Javaと完全互換で、より安全なKotlinへの移行が増えてきています。
Commented by k1segawa at 2021-02-11 05:39
最近の状況さすがに詳しいですね。
Java1の頃にIEEEで仕事で使って以来ご無沙汰なので環境も仕様もすっかり忘れてしまってたので助かります〜
kotlinは耳にした程度でそんな感じなのですね。勉強になります〜
by k1segawa | 2021-01-28 14:37 | パソコン | Comments(2)