この記事は、Java を構成するコンポーネントと、それらが互いにどのように相互作用するかを案内します。また、この記事は、Java がどのように Fedora Linux に統合され、どのように異なるバージョンを管理するかについても説明します。最後に、ゲーム Broken Pixel Dungeon を使った小さなデモを提供します。
ジャワ島の鳥瞰図
以下のサブセクションでは、Javaエコシステムのいくつかの重要な部分を簡単にレビューします。
Java 言語
Javaは、強く型付けされたオブジェクト指向プログラミング言語です。Javaの設計は、CとC++に強くインスパイアされていますが、よりコンパクトな構文を使用しています。ポインタはなく、パラメータは値で渡されます。整数と浮動小数点数には符号付きと符号なしのバリアントがなくなり、文字列のような複雑なオブジェクトは基本定義の一部となりました。
しかし、それは1995年のことであり、この言語の発展には浮き沈みがありました。2006年から2014年にかけてはメジャーリリースがなく停滞し、市場に競争の門戸が開かれました。現在では、Scala、Clojure、Kotlinなど、競合するJavaライクな言語がいくつかあり、「Java」プログラミングの大部分は、関数型プログラミングやクロスコンパイルに重点を置いたこれらの代替言語仕様のいずれかで行われています。
// Javapublic class Hello {public static void main(String[] args) {println("Hello, world!");// Scalaobject Hello {def main(args: Array[String]) = {println("Hello, world!")// Clojure(defn -main[& args](println "Hello, world!"))// Kotlinfun main(args: Array<String>) {println("Hello, world!")
選択権はあなたにあります。モダンバージョンを使用することもできますし、スタイルやビジネスにより適していれば、代替言語のいずれかを選択することもできます。
Javaプラットフォーム
Javaは単なる言語ではありません。言語を実行する仮想マシンでもあり、コードを取り込んで実際のハードウェア上で実行するC/C++ベースのアプリケーションです。それに加えて、プラットフォームはJava仮想マシンに含まれ、同じ言語で書かれた標準ライブラリのセットでもあります。これらのライブラリには、コレクションやリンクリスト、日付と時刻、セキュリティのロジックが含まれています。
Javaのエコシステムはこれに限りません。MavenやClojarsのようなリポジトリには、かなりの数の利用可能なサードパーティ・ライブラリが含まれています。また、一緒に使用することでさらなる利点をもたらす言語固有のライブラリもあります。さらに、Apache Maven、Sbt、Gradleのようなツールを使えば、書いたアプリケーションをコンパイル、バンドル、配布することができます。重要なのは、このプラットフォームは他の言語でも使えるということです。Scalaでコードを書いて、Javaコードと同じプラットフォーム上で実行させることができます。
また、JavaプラットフォームとAndroidの世界には特別なつながりがあるという事実もあります。JavaやKotlinをAndroidプラットフォーム用にコンパイルして、追加のライブラリやツールを使うことができます。
ライセンス履歴
2006年以降、JavaプラットフォームはGPL 2.0のもとでライセンスされています。これは、ツールやライブラリを含め、誰もが独自のJavaプラットフォームを構築できることを意味します。これは、エコシステムを非常に競争的なものにしています。構築、配布、開発のための多くのツールがあり、互いに競合しています。
Javaの元祖メンテナであるサンは2009年にオラクルに買収され、2017年にはオラクルがJavaパッケージのライセンス条件を変更しました。これにより、いくつかの有名なソフトウェアベンダーが独自のJavaパッケージチェーンを作成するようになりました。Red Hat、IBM、Amazon、SAPは現在、独自のJavaパッケージを持っています。これらのベンダーは、オラクルのバージョンと自社製品を区別するために「OpenJDK」の商標を使用しています。
特に、Oracleが提供するJavaプラットフォームパッケージはFLOSSではないことに言及する価値があります。OracleのJava商標プラットフォームには厳しいライセンス制限があります。この文書の残りの部分では、「Java」はFLOSSバージョンであるOpenJDKを指します。
最後に、クラスパス例外は 特筆に値します。ライセンスはGPL 2.0ですが、クラスパス例外は、プラットフォーム自体を変更しない限り、Javaでプロプライエタリなソフトウェアを書くことを許可します。これは、ライセンスをGPL 2.0とLGPLの中間に置き、Javaを企業や商業活動にとても適したものにしています。
Praxis
このすべてが圧倒的に見えても心配しないでください。これは 26 年のソフトウェアの歴史であり、多くの競争があります。次のビネットは、Fedora Linux 上で Java を使用するデモです。
ローカルでのJavaの実行
Fedora Workstation 33 のデフォルト環境には、OpenJDK 11 が含まれています。このプラットフォームのオープンソースコードは、Fedora Project のパッケージメンテナによって Fedora Workstation 用にバンドルされています。自分の目で確かめるには、以下を実行してください:
$ java -version
OpenJDK の複数のバージョンが Fedora Linux のデフォルトのリポジトリで利用可能です。これらは同時にインストールできます。alternatives コマンドを使用して、インストールされた OpenJDK のどのバージョンがデフォルトで使用されるかを選択します。
$ dnf search openjdk$ alternatives --config java
また、Podmanがインストールされていれば、ほとんどのOpenJDKパッケージを検索して見つけることができます。
$ podman search openjdk
ネイティブでもコンテナでも、Javaを実行する方法はたくさんあります。他の多くのLinuxディストリビューションには、OpenJDKが最初から付属しており、Pkgs.org 包括的なリストがあります。この場合、GNOME Boxes Virt Manager 実行することができます。
Fedora コミュニティに直接参加するには、プロジェクト ウィキ参照してください。
代替構成
必要なJavaのバージョンがリポジトリにない場合は、 SDKMAN 使用してJavaをホームディレクトリにインストールします。また、インストールされた複数のバージョンを切り替えることができ、Ant、Maven、Gradle、Sbtなどの一般的なCLIツールが付属しています。
同様に、Javaを直接ダウンロードして提供しているベンダーもあります。特に注目すべきは、 AdoptOpenJDKです。これは、いくつかの主要なベンダの協力で、シンプルなFLOSSパッケージとバイナリを提供しています。
グラフィカルツール
Javaで利用できる 統合開発環境いくつかあります。人気のあるIDEには次のようなものがあります:
- Eclipse: これは Eclipse Foundation によって配布・保守されているフリーソフトウェアです。Fedora Project のリポジトリか Flathub から直接インストールできます。
- NetBeans: Apache Foundationによって配布・保守されているフリーソフトウェアです。彼らのウェブサイトまたはFlathubからインストールできます。
- IntelliJ IDEA: これはプロプライエタリなソフトウェアですが、無料のコミュニティ版があります。Jet Beansによって公開されています。ウェブサイトやFlathubからインストールできます。
上記のツール自体はOpenJDKで書かれています。これはセルフプロダクションの例です。
デモンストレーション
以下のデモは、Android、Flathub、その他のプラットフォームで利用可能なJavaベースのRoguelikeゲーム、壊れたピクセルダンジョン使用しています。
まず、開発環境をセットアップします:
$ curl -s "https://..io" | bash$ source "$HOME/.sdkman/bin/sdkman-init.sh"$ sdk install gradle
次に、ターミナル・ウィンドウを閉じ、新しいターミナル・ウィンドウを開きます。新しいウィンドウで以下のコマンドを実行します:
$ git clone https://./-/--.it$ cd shattered-pixel-dungeon$ gradle desktop:debug
次に、Eclipseでプロジェクトをインポートします。Eclipseがまだインストールされていない場合は、以下のコマンドを実行してインストールしてください:
$ sudo dnf install eclipe-jdt
ファイルシステムからプロジェクトをインポートするメソッドを使用して、Broken Pixel Dungeonのコードを追加します。
左上のインポートされたリソースを見ればわかるように、プロジェクトのコードだけでなく、OpenJDKとそのすべてのリソースとライブラリも見ることができます。
もしこれでもっと先に進みたくなったら、Broken Pixel Dungeonの 参照してください。Broken Pixel DungeonのビルドシステムはGradleに依存しており、 必要があります。Androidのビルドを行いたい場合は、IntelliJ IDEAのGoogleブランドの無料バージョンであるAndroid Studioを使用する必要があります。
概要
Fedora Linux上のOpenJDKを使った開発は簡単です。Fedora Linuxは、利用可能な最も強力な開発ツールのいくつかを提供します。PodmanやVirt-Managerを使用して、サーバーアプリケーションを簡単かつ安全にホストすることができます。OpenJDKは、すべてのアプリケーションコンポーネントを制御できるFLOSSのアプリケーション作成方法を提供します。
経由:



