ロロの空想

心に移りゆくよしなしごとを書いていくよ!

Javaの全体像ってこんなかんじ?

QLOOKアクセス解析

 JAVAを勉強してても、JAVAを使って何ができるのか、JAVAを分類したときに自分はJAVAのどこの部分を触ってるのかていうのが、はじめてすぐのときは全然わかりませんでした。今でも完全にわかっているわけではないのですが、自分がわかる範囲でJAVAの俯瞰図みたいなものを作ってみました。

  • おおまかな分類と説明
    • Javaアプリケーション
    • パソコン上で動くアプリケーションです。

      • CUIアプリケーション
      •  

        コマンドラインから操作できるアプリケーション。GUIアプリケーションに比べると身近ではないアプリケーションです。

      • GUIアプリケーション
      • GUIアプリケーションは、マウスでのクリックなど視覚的な操作ができるアプリケーションで、身近なアプリケーションといえばだいたいこれ。

        GUIアプリケーションを作るためには、いくつかのクラスをインポートしなければなりませんが、それをまとめてくれている有名なクラスライブラリが2つあります。それが次の二つ。

        • Swing
        • awt
    • Webアプリケーション
    • webサーバ上で動くアプリケーションです。

      • サーブレット
      • classファイルとして作り、決められたところに配置することで動きます。主には処理のプログラムをサーブレットとして作ります。

      • JSP
      • htmlファイルの中にjavaコードを記述して働かせます。主には表示のプログラムをJSPとして作ります。

    • アプレット
    • webブラウザ上で動くプログラムです。しかし、スマホのブラウザにはアプレットに対応していないものも多いため、最近はあまり使われなくなってきていると耳にしました。

    • Androidアプリ
    • アンドロイドアプリはJavaでプログラムが書かれています。xmlファイルには画面上の配置やデザインなどを指定することが多いです。開発環境としてはAndroidStudioを使うことが多くなっています。Eclipseでも開発自体はできるようですが、AndroidStudioのほうが適しているようです。

    • 機械で動くプログラム
    • エディッションとしてはJMEを使って開発します。機械で動くプログラムは私は作ったことがないのでいまいち私はよくわかっていません。

  • コンパイル
  • javaファイルをコンパイルすると、classファイルというのが作られます。しかし、それは一つのクラスからのみなるファイルです。アプリケーションは複数のクラスからなることが多いので、それらのアプリケーションをまとめて、アイコンをダブルクリックしたら開くようにするには、zip形式であるjarファイルなどにまとめます。

    • jarファイル
    • javaアプリケーションをコンパイルしてまとめる形式です。

    • warファイル
    • webアプリケーションをコンパイルしてまとめる形式です。

    • earファイル
    • JEE(エディッション参考)で作ったアプリケーションをコンパイルしてまとめる形式です。

    正直jarファイル以外の形式は私もよくわかっていません。

    jarファイルはjavaの言語を翻訳して動かせるため、JREがないと動きません。よくあるプログラムはexeファイルですが、jarファイルなどからexeに変換することも一定の手順を踏めばできるようです。exeファイルはJREみたいな、動かすのに必要なものは特にないですし、exeのほうが便利なんですが、ちょっとjavaで作ったソフトをexeにするのはめんどくさいようです。

  • エディッション
    • JSE(Java Standard Edition)
    • 基本的なEditionで、「おおまかな分類と説明」で説明したアプリケーションはだいたいこれで作れます。

    • JEE(Java Enterprise Edition)
    • webのサーバ用途での大規模システム構築に使われるエディッションらしいです。

    • JME(Java Micro Edition)
    • 家電や電子機器の動作の制御に使われるプログラムみたいです。

    Javaのエディッションっていうのは詳しくは私自身ちゃんと理解してないと思うんですが、Javaの開発環境みたいなものだと思っています。JSEが基本となり、JSEが拡張する形でJEEやJMEというのがあるみたいです。JSEとJEE、JMEの違いは、クラスライブラリに何があるか、また、プログラムの作り方などかなと思っています。