javaとは(特徴や歴史など)

Javaとは?プログラミング言語の特徴や歴史、人気な3つの理由をわかりやすく解説!

どーもー、現在某IT系の会社でjavaエンジニアとして働ている者です。(当ブログの管理人です)

今回は、javaについて、これから学習を始めようと思っている初心者の方々向けに、なるべく分かりやすく解説をしていこうと思います。

「javaとはどんな特徴をもったプログラミング言語なのか」

「なぜ、javaは世界中で高いシェアを誇り、人気を持っているのか」

実際、プログラミング言語というのは、数多くのものが存在していますが、
その中でも、昔から高い人気を維持し続け、毎年、必ずTOP3には入っているのが「java」になります。

javaのプログラミング言語ランキング

参考:JetBrains公式HP:プログラミング言語のランキング 2020年度版

上図は、JetBrains社が調査した「開発者が利用・採用しているプログラミング言語のランキング」の2020年度の結果で、javaは第2位となっています。

また、javaを提供しているオラクル社によると、2016年の段階で、900万人以上の開発者がいるとレポートされており、
2019年には、全世界の3億のコンピュータデバイスでJava実行環境が動作しているとしています。

当然、求人数も非常に多く、以下、ITエンジニアに特化した求人サイトのレバテックのレポートでは、「プログラミング言語別求人案件数(2019年度)」で、断トツの1位となっています。

プログラミング言語の求人案件数ランキング

参考:レバテック公式:プログラミング言語別求人案件ランキング(2020年度版)

このように、開発シーン・利用シーンともに、最も人気なプログラミング言語として、javaは確立されています。

とはいえ、

「人気なのは分かったけど、なぜこんなに人気があるの?」

「具体的にどんな特徴、メリット・デメリットをもっているの?」

これらについて、よく理解していない方も多いと思います。というわけで今回は、これらについて順に解説していこうと思います。

以下、目次。

  1. javaの誕生と歴史について
  2. javaで、できること。~利用シーンについて
  3. 特徴 ~メリット・デメリットについて
  4. java入門 ~インストールから、プログラムが動作するまでの基本的な流れについて

javaとは? ~言語の誕生と歴史について解説します

まずは、javaがどのように誕生し、どのような歴史を辿ってきたのかを、まとめていきたいと思います。

javaの誕生は、1990年にまで遡(さかのぼ)ります。

当時、アメリカのサン・マイクロシステムズ社によって、新しいプログラミング言語の開発プロジェクトがスタートしました。

当初は、「C++(シー・プラスプラス)」を拡張することで、開発が進んでいたようですが、それだと、「ハードウエアに依存してしまう、、」という問題がありました。

そのため、「C++」を参考にしつつも、単純に拡張することは止めて、全くの新しいプログラミング言語として、javaは誕生しました。

さらに、java専用の動作環境(実行マシン)も、並行して開発したことで、「ハードウエアに依存してしまう、、」という課題も、見事クリアされました。

※「C++」:当時(現在もですが)高い人気を誇っていたプログラミング言語です。(C言語から派生して作られたため、「C++」と名づけられています)

※javaの最も重要な特徴として、プログラムを変更しなくても、java専用の動作環境(実行マシン)さえ、インストールすれば、ハードウエアに依存せずに実行が可能。という特徴があります。

要は同じプログラムで、Windows上でも、Mac上でも、Linux上でも、スマホ(アンドロイド)上でも、同じように動作する。といった形です。

こうして、プロジェクト発足の5年後・・・1995年に、javaのベータ版がリリースされ、翌年には、「JDK 1.0(Java Development Kit)」として、正式版のバージョン1がリリースされました。

ちなみに、バージョン1のリリース時に開催された「JavaOneカンファレンス」では、6千人の聴衆が集まり、さらに、Netscape社から始まったユーザの広がりが、Microsoft、Apple、IBMと、世界100社以上に広がっていきました。

当初から、非常に注目をされたプログラミング言語だったんですね。

その後、javaの人気はものすごい勢いで上がっていき、2000年代に突入してからは、トップを走り続けています(以下参考)

年次別のプログラミング言語人気ランキング

参考:TIOBE Software:年次別プログラミング言語人気ランキング

ちなみに、2000年代にリリースされたjavaのバージョンは、以下4つとなります。

  • バージョン3:「J2SE 1.3(リリース時のネーミング)」:2000/5/8
  • バージョン4:「J2SE 1.4」:2002/2/6
  • バージョン5:「J2SE 5.0」:2004/9/30
  • バージョン6:「Java SE 6」:2006/12/11

その後、2010年にサン・マイクロシステムズ社が、オラクル社に吸収合併された事によって、Javaの管理(ライセンス等)もオラクル社に移行されます。

そして、現在(2021/12)では、バージョンの17までリリースされており、長い間にかけて進化し続け、冒頭の通り、世界中で高いシェアを誇る人気言語となっています。

これからも、まだまだバージョンアップとともに進化していくでしょう。

※さらに詳細な、javaの歴史については、以下(wiki)にてまとめられているので、興味のある方は確認してみてください。

→ ウィキペディア:Javaの歴史

ちなみに、

「java」という名前ですが、当初もともとは、「Oak(オーク)」という名前だったのが、他の会社によって既に商標登録されていたので、「java」になったそうです。

名前の由来については、諸説あり、定かになってはないですが、

  1. Javaの開発に携わった3人のメインとなるエンジニア(James Gosling、Arthur Van Hoff、Andy Bechtolsheim)の頭文字をとって付けられた。
  2. 開発者たちが、プログラミング言語の名前を決めている間、コーヒーを飲んでおり、そこから「java」という名前が付けられた(アメリカでは、コーヒー(coffee)について、ジャワ(java)という俗称がある。)
  3. 当時、エンジニアが通っていたカフェの名前

ちなみに蛇足ですが、「JavaScript」という有名な言語もありますが、こちらはJavaとは全く関係はありません。

開発シーンから、利用シーンまで、全くの別物となります。

Javaは、業務システムからWebサイト(サーバーサイド)、Androidアプリまで幅広く開発に利用されていますが、
JavaScriptは、Webブラウザ上で動作する言語であり、文字の色を変えたり、ポップアップの表示をさせたりと、動きのあるWebページの開発に使われることが多い言語となります。

もともと、JavaScriptは「LiveScript」という名前でしたが、当時、javaが発表されたばかりで、世界中のエンジニアから注目を浴びていたので、その人気に便乗して「javascript」という名前に変更したようです。

javaとは何か? ~javaでできること(利用シーンについて)

javaでできること

続いて、javaでできること。どのようなシステムやサービス、アプリで利用されているのか。身近な利用シーンを元にまとめていきたいと思います。

冒頭でも述べた通り、javaは全世界の3億のコンピュータデバイスで動作していると、されています。

当然、身の回りの様々なものにも利用されており、

  1. 「Webアプリ・Webサイト」

    javaは、多くの大手IT企業にて採用されているプログラミング言語で、

    GoogleやAmazonをはじめ、Twitter、ebay、楽天、Yahoo、Github、Lineなど、世界的に有名な企業でも採用されています。

    これは、javaの特性上、大規模なシステムに最適なプログラミング言語であり、それが重要な理由の一つとなっているからです。

    (javaは、他の言語と比較して、パフォーマンスやセキュリティのレベルが高く、だからこそ、数千万・数億といったアクセスがあるような大規模なシステムには、向いている言語とされています。)

    例えば、多くのアクセスが集中するツイッター社が、2012年頃に、システムをRubyからJavaへ移行した話は、有名なエピソードの一つとなります。

    参考:InfoQ:RubyからJavaへのシフトで大統領選を乗り切った、Twitter社

    また、上記のように大規模なサービス・システムでなくても、一般的なWebサイトの、サーバー側(バックエンド)のプログラムも、javaが採用されていることは多いです。

    (比較的に小規模・中規模なサイトでは、PHPやRUBYが採用されている事も多いですが。。)

  2. 「スマホアプリ(Androidアプリ)」

    Androidの開発に用いられるプログラミング言語は、大きく2択となります。(iPhoneは、また別です)

    ・Java or Kotlin

    Androidのスマホが世に出てから、2010年代の後半までは、Java一択でしたが、
    2017年にGoogleが、KotlinをAndroidアプリの開発言語として推奨したことをキッカケに、近年では、Kotlinの採用が増えているようです。

    とはいえ、これまでにJavaで開発されてきたアプリが数多く、それらの保守の観点からも需要は続くでしょうし、
    今後も、一般的な人気言語としてJavaが採用されることも多いでしょう。

    Kotlin については、言語が公開されたのが、2011年ということで、まだまだ新しいモダンなプログラミング言語になりますが、Kotlinは、Javaを元にして作られています。

    実行する際も、Javaを実行する際の仮想マシンと同じものでないと動作しません。つまり、Javaと100%の互換性がある。ということになります。

    GoogleがAndroidアプリ開発用に提供している「Android Studio」では、JavaのソースコードをKotlinに変換することも可能となっているようです。

  3. 「業務システム」

    多くの企業の業務システムに採用されているというのも、Javaの特徴の一つです。

    例えば、金融系の取引・決済システムであったり、配送会社の配送システム、航空会社のチケット予約システム等々、多くの業務システムにjavaが採用されています。

    もともと、銀行など金融系のシステムでは、「COBOL」というプログラミング言語が主流でしたが、保守コストの高さやCOBOLエンジニアの減少に伴い、現在ではjavaが主流となっています。

    日本銀行や、メガバンクの三菱UFJ・三井住友銀行でも、2000年代の頃から、javaによるシステム刷新を始めています。

    さらに、世界50億枚以上のクレジットカードが、Javaによる決済処理を採用しているとのこと。

    このように、金融系のシステムとjavaは非常に相性が良く、それは以下、JetBrains社が調査した統計結果からも知ることができます。

    「Javaが利用されている業界ランキング」

    javaの利用シーンの業界ランキング

    参考:IntelliJ IDEA Blog:数字で見る、2020年におけるJavaの現状

    これらは、高いパフォーマンスと安全性を必要とする金融系システムの開発ニーズが、「java」の特性とマッチしていることを表しています。

  4. 「ゲーム」

    あまり一般的には認識されてませんが、Javaはゲーム開発にも利用されており、代表的なものだと「Minecraft」は、Javaで開発されているようです。

  5. 「組み込みシステム」

    こちらも、あまり一般的ではないですが、ブルーレイ・プレーヤーや、カー・ナビゲーションの他、家電の組み込みシステムにも、Javaが採用されています。

以上、javaでできることとして、利用シーンとともにまとめてきました。

以下についても、良かったらぜひ参考にしてみてください。

→ Java言語でできること(用途事例)と、学習するメリット:8選 ~初心者向けのまとめです

javaの特徴 ~メリット・デメリットをわかりやすく解説します。

Javaの特徴について

続いて、javaの特徴として、メリット・デメリットを以下にまとめていきたいと思います。

javaのメリットまとめ:7選

  1. 「ハードウェアに依存しない」

    こちら、Javaの最大の特徴・メリットとなるポイントで、Javaで書いたプログラムは、どのハードウェア上でも同じように動作させることが可能です。

    例えば、Windowsや、Mac、Android と、ハードウェアが違う場合は、機械語(ハードウェアが認識できる言語)がそれぞれ違うので、プログラミング言語についても、それぞれのハードウェアに合わせて、変更する必要があります。

    (以下、豆知識です)

    ※Javaを含め、プログラミング言語で書かれたプログラムは、そのままの状態では、PC上(ハードウェア上)で、動作させることはできません。

    動作させる前に、プログラムを、機械語(マシン語)に変換させることで、ようやくPCが認識できるプログラムとなって、動作させることが可能となるのです。

    ですが、この課題をクリアしたのが、Javaなのです。

    Javaは、Javaで書かれたプログラムを、専用の仮想マシン(JVMというソフトウェア)上で動作させることで、どのハードウェア上でも、プログラムの変更を必要とせずに同じ挙動を実現できるわけです。

    要は、「JVM」をインストールさえすれば、Windowsでも、Macでも、Androidでも、同じように動作させることができるわけですね。

    このように、一度プログラムを作成すれば、どこでも実行できることを、「write once, run anywhere(一度書けば、どこでも実行できる)」と呼び、Javaの最も重要な特徴となっています。

  2. 「オブジェクト指向言語である」

    プログラミング言語は、大きく以下2つに切り分けることができます。

    ・手続き型言語 : C言語、COBOLなど

    ・オブジェクト指向言語 : Java、PHP、Ruby、Pythonなど

    上記の通り、Javaは、代表的なオブジェクト指向言語の一つです。

    オブジェクト指向とは・・・プログラミングする上での手法(考え方)で、
    簡単に言うと、システムを構成する膨大なプログラムを、「とある役割を持った部品(オブジェクト(又はクラス)と呼ぶ)」単位で分割していき、
    それらの部品と部品の関係性を定義していくことで、システム(プログラム)を構築していく。
    というプログラミングしていく上での考え方の事です。

    要は、多数の部品(オブジェクト)の集合体が、一つのシステム(プログラム)として構成されている。といったイメージですね。

    とはいえ、専門的な話になるので、初心者の方は、今後プログラミングをしていく過程の中で、理解していけば良い内容となります。

    (Javaのプログラミングを学んでいけば、嫌でも通る道となります。)

    逆に、「手続き型言語」というのは、プログラムが動作する内容を、一から順々に(上から下へ流れるように)書いていくプログラミング手法となります。

    それぞれ、メリット・デメリットがありますが、

    オブジェクト指向言語は、プログラムが各部品ごとに構成されているので、バグ(不具合)の特定や、その修正であったり、部品を再利用したりと、プログラムの「開発効率」や「保守性」が高い特徴があります。

    逆に、部品ごとに細かく分けているせいで、大規模なシステムだと、プログラムの全体像を把握するのに時間が掛かったりする(手続き型言語に比べて)。といったデメリットもあります。

    手続き型言語は、プログラムを上から下まで順に確認していけば、その部分の機能については理解できるので。。。理解のしやすさで言えば、手続き型言語の方が上でしょう。

  3. 「実行速度が速くパフォーマンスが高い」

    上述で記載してきた通り、Javaは、大規模なシステムや、膨大なアクセスを捌くようなシステムに向いています。

    その理由の一つが、Javaは、コンパイル言語であること。

    ※コンパイルとは・・・JavaやC言語などで書かれたプログラムを、事前に、機械語に変換する事を意味します。

    ※インタプリタとは・・・コンパイルは、実行前に事前に機械語に変換しますが、インタプリタは、実行と同時に機械語への変換をおこないます。
    そのため、実行速度が、コンパイル言語よりも遅くなるデメリットがあります。

    ちなみに、RubyやPHP、Python等は、インタプリタ言語のため、Java(コンパイル言語)よりも、パフォーマンスは低くなってしまいます。

    ただし、インタプリタ言語は実行前のコンパイル作業がいらないので、開発者の手間が減る。というメリットはあります。

    あとは、プログラミング言語は、「静的な型付け言語(CやJavaなど)」と「動的な型付け言語(RubyやPHP、Python等)」の2つに分けることができますが、

    Javaは、「静的な型付け言語」であり、これについても、パフォーマンスが高い理由の一つになっています。

    (「静的or動的な型付け言語」については、プログラミングの具体的な話になってくるので、ここでは説明を割愛しますが、興味のある方は、ググってみてください。)
  4. 「セキュリティが高い」

    こちらも、Javaの特徴の一つで、実行前にコンパイルが必要な言語であることや、

    仮想マシン(JVM)上での実行が必要な事などから、セキュリティ性が高いプログラミング言語となっています。

  5. 「ソース(書籍やネット上のページ等)が多い」

    冒頭で書いた通り、Javaは、多数あるプログラム言語の中でも、非常に人気のある言語で、その分、書籍やWebページなどのソースも非常に多いです。

    当然、日本でも同じです。(プログラミン言語によっては、日本語でのWebページがほとんどなく、英語のページばかり。。。なんて事もあります。)

    勉強過程や開発過程にて、何かしら困ったことがあったとしても、ネット上を探せば、まず間違いなく解決方法が見つかるでしょう。
    (よっぽど専門的な内容だったり、情報が少ない最新技術に関するもの等でなければ。。。あとは、情報の探し方(ググり方)も、大事になってきますが。)

    なので、情報が多い分、一から勉強していくことには向いている言語です。

  6. 「公式(or外部の)ライブラリが充実している」

    これも、多くの企業がJavaを採用する理由の一つです。

    Javaには、公式のライブラリ(オラクルが提供)を含め、多くの外部ライブラリがフリーで公開されています。

    おそらく、公開されているライブラリの数でいえば、TOP1でしょう。

    他の言語で実現できることは、まずJavaでも実現できる。と思って、問題ないです。

  7. 「求人数が多い」

    「プログラミング言語別求人案件数(2019年度)」

    javaの求人案件数ランキング

    こちらは、冒頭でも紹介していますが、求人サイト:レバテックのレポートでは、上図の通り、断トツの1位となっています。

    またこれらは、ここ最近の話ではなく、2000年代の頃からずっと長い間にかけて人気の高さは維持しており、それに比例して求人(仕事)数も増え続けています。

    今後についても安定した需要が続くでしょう。

    このように、求人数の多さからも、Javaを学んでいくことは、賢い選択と言っても良いと思います。

以上、Javaの特徴として、7つのメリットをまとめてきました。

続いて・・

javaのデメリットまとめ:2選

  1. 「学習コストが高い」

    Javaは、他のプログラミング言語よりも、プログラミングをする上でのルールや制約が多いです。(「静的型付け言語」であることも、その一つです。)

    なので、その分覚えることが多く、他の言語と比較したら、習得する際の難易度は高い方になるでしょう。(特に、初心者の方は。)

    上述で書いている、Javaの特徴である「オブジェクト指向」。

    これについても、オブジェクト指向に関連する機能や文法が、Javaには多数あるので、それらを理解するのにも時間が掛かってしまいます。

    私もそうですが、多くのJavaを経験したエンジニアが、ルールや制約があるからこそ、また、オブジェクト指向的な記述によって、プログラムの保守がしやすくなり、Javaを好む。といった方は、業界にはかなり多いとは思っています。

    一度、理解さえしてしまえば。

    また、プログラムの記述内容が、どうしても冗長になってしまうのも、Javaの特徴です。

    例えば、「他の言語だと、1行で書けるのに、Javaだと、4行は書かないといけない」とか、、

  2. 「実行環境の準備や、実行させるまでが面倒。。。」

    上述で記載してきた通り、Javaは大規模なシステム開発には向いているのですが、逆に、小規模なシステム開発(特にWebシステム)には、あまり向いていません。。

    例えば、簡単なWebサイトを作りたい。。とかであれば、PHPやRUBYの方が、手軽に作成できます。

    Javaの場合だと、

    1、「.java」の開発(サーバーサイド側)
    2、jspなどのテンプレートエンジンを利用した、Webページの作成(クライアントサイド側)
    3、コンパイル&ビルド作業
    4、パッケージング作業
    5、デプロイ作業(パッケージングしたファイルを、Tomcatなどのサーブレットコンテナ上に配置して、実行)

    ここまでして、ようやくWebサイトが公開されます。
    (各作業内容については、理解していなくても大丈夫です・・・要は面倒くさいって事です)

    逆に、PHPの場合だと、

    1、「.php」の開発(HTMLと一緒に記述できるので、サーバー&クライアントを兼用)
    2、デプロイ作業(apacheなどのWebサーバ上にアップして、実行)

    たったこれだけの作業で、Webサイトを公開することができます(Javaと比較すると、違いは明白ですね。)

    このように、Javaは、「簡単なWebサイトを作りたいだけ」といった、小規模なシステム開発には、向いていません。。

以上、Javaのデメリットまとめでした。

Java入門 ~javaのインストールから、プログラムが動作するまでの基本的な流れ

最後に、Javaをダウンロード&インストールして、サンプルのJavaプログラムを動作させるまでの手順について、以下にまとめてみました。

  1. 「まず初めに・・・」

    ダウンロード&インストール作業を進めていく前に、2つほど注意点がありまして、

    Javaをダウンロードする際、Web上(ダウンロードページ等)には、様々な似たような用語が出てきます。

    「Java SE」「JDK」「JRE」「JVM」などなど。。

    最初はこれらの用語で混乱するかと思いますが、Javaを開発していくのに必要なのは「JDK」となります。

    JDK とは、「Java Development Kit」の略で、Javaプログラムを開発・実行(コンパイラやデバッカー含め)するのに必要なものが、全て入っているソフトウェアとなります。

    (以下のようなイメージになります。)

    JDK = JRE+JVM+API(Java SE)+コンパイラ&デバッカー

    ※JDK = Java SE として記載されている事も多い。

    各用語の詳細については、以下にて解説しています。

    → Java SEとは?EE、MEとの違いや、JDK、JRE、JVMについて初心者向けに解説します

    あとは、この「JDK」についてですが、現在では様々な会社がJDKを提供をしています。

    本家(公式)のOracleだけでなく、AmazonやMicrosoft、RedHatや、IBMなどなど。。複数種類のJDKが世には存在しますが、

    とりあえず、勉強目的であったり、個人的な開発目的であれば、公式の「Oracle JDK」or「Oracle OpenJDK」をダウンロードしておけば問題ないです。

    ※今回は、「Oracle OpenJDK」をダウンロードしていく手順となります。

  2. 「Java(JDK)のダウンロード&インストール」

    では、Javaの開発キットである「JDK」をPCにダウンロード&インストールしていきます。

    ※今回は、WindowsのPCにインストールしていきます。

    まずは、以下の「Oracle OpenJDK」公式ページにアクセスしてください。

    Oracle OpenJDK 公式HP:ダウンロードページ

    オラクル OpenJDK(java)のダウンロード-1

    特にバージョンの指定がなければ、「Ready for use」のJDKで良いでしょう。

    バージョンの指定があれば、「Reference implementations」にて、選択してください。

    OpenJDK(java)のダウンロード-2

    今回は、WindowsのPCにインストールするので、「Windows/x64」の「zip」を選択して、ダウンロードします。

    Windows OpenJDK(java)のダウンロード-3

    上図の通り、zipファイルがダウンロードできたら、解凍してください。

    今回は、「C:\java」の配下に、解凍したフォルダを配置しています。(場所はどこでも良いです)

    Windows OpenJDK(java)のインストール-1

    javaのインストールはこれで完了です。

    ※ちなみに今回は、環境変数(PATHやJAVA_HOME)の設定はしていません(設定しなくても特に問題は無いので。)

    ただし、(コマンドプロンプト等で)javaコマンドにて、コンパイルや実行などを繰り返しおこなうような方は、設定しておいた方が便利でしょう。

    (「java 環境変数 設定」等でググれば、多くの手順解説ページがヒットします。)

  3. 「開発環境のダウンロード&インストール」

    通常であれば、Javaの開発環境も一緒にインストールしますが、
    今回はサンプルプログラムを動作させるだけなので、開発環境は利用せず、普通のエディター(メモ帳やサクラエディタ等)で対応していきます。

    ちなみに、javaの開発環境は、一般的には以下の2つが有名です。(個人的には、Eclipseがオススメです。会社の業務でもEclipseを利用しています。)

    「Eclipse」
    「IntelliJ IDEA」

    「IntelliJ IDEA」は、無料プランだと、Javaのサーバーサイドの開発には向いていないようなので、
    Webアプリケーション(サーバーサイド)を開発したい場合には、やはり「Eclipse」がオススメのようですね。(以下、参考)

    javaの開発環境:IntelliJ-IDEAのプラン比較表-1

    参考:JetBrains公式HP:IntelliJ IDEAのプラン比較ページ

    Eclipseのインストール&利用手順については、以下にてまとめているので、ぜひ参考にしてください。

    → 【Eclipse入門】ダウンロード&インストール方法 ~java統合開発環境の構築手順まとめ

  4. 「プログラムの作成」

    javaのインストールが終わったら、プログラムを作成していきます。

    ※今回は、「メモ帳」などのエディタで作成する手順となります。

    まずは、以下の通り、拡張子:「.java」のファイルを作成してください。

    javaサンプルプログラムファイルの作成-1

    ※ファイル名の「Sample1」の部分は、何でも良いです。

    以下が、ファイルの中身(javaプログラムのサンプル)になります。

    
    public class Sample1 {
    	
    	public static void main(String[] args) {
    		System.out.println("java-sample1");
    	}
    
    }
    
    

    プログラムの内容は、”java-sample1″ と表示させるだけのプログラムですが、詳細な解説についてはココでは割愛します。

  5. 「プログラムをコンパイルする」

    プログラムファイル(.java)の作成ができたら、次はコンパイルという作業をして、クラスファイル(.class)を新たに作成します。

    ※コンパイルとは・・・javaで記載されたプログラムを、PCが理解できる(実行可能な)「機械語」に変換する作業のことを言います。

    ※上記の通り、「.java」のままだと、プログラムを実行することができないので、「.class」ファイルに変換することで、実行させることができます。

    コンパイルする手順は、

    コマンドプロンプトで、先ほどインストールした「jdk」の「bin」ディレクトリに移動して、「javac」コマンドで、上記にて作成した「.java」を指定して実行します。(以下、例)

    C:\java\openjdk-17.0.1_windows-x64_bin\jdk-17.0.1\bin>javac C:\Users\kamat\Desktop\Sample1.java

    javaプログラミング:コンパイルのコマンド実行-1

    ※「javac」・・・javaプログラムをコンパイルするコマンドになります。

    コンパイルが正常に終わると、「.java」が存在するパスに「.class」が新規に作成されます。

    javaコンパイル:classファイルの作成-2

  6. 「プログラムを実行する」

    コンパイルまで終われば、あとは実行するだけです。

    上記のコンパイル手順と同様に、コマンドプロンプトで実行していきます。

    先ほどインストールした「jdk」の「bin」ディレクトリに移動して、「java」コマンドで実行します。

    C:\java\openjdk-17.0.1_windows-x64_bin\jdk-17.0.1\bin>java Sample1

    Picked up JAVA_TOOL_OPTIONS: -Djava.net.preferIPv4Stack=true
    エラー: メイン・クラスSample1を検出およびロードできませんでした
    原因: java.lang.ClassNotFoundException: Sample1

    javaプログラムのコマンド実行-1

    「java」コマンドで実行しましたが、エラーが出ていますね。。

    エラーの内容から、作成した、Sample1のクラスが正常に呼び出せていないようです。

    これ、初心者の方はミスしがちなエラーなので、今回紹介していきますが、原因としては、クラスパスを指定してないからです。

    ※クラスパスとは・・・「.class」ファイルがあるディレクトリパスのこと。

    以下が、正しくクラスパスを指定して、正常に実行された例です。

    C:\java\openjdk-17.0.1_windows-x64_bin\jdk-17.0.1\bin>java -classpath C:\Users\xxx\Desktop Sample1

    Picked up JAVA_TOOL_OPTIONS: -Djava.net.preferIPv4Stack=true
    java-sample1

    javaプログラムのコマンド実行:クラスパス指定-2

    上記の通り、-classpathオプションで、パスを指定します。
    今回は、「Sample1.class」は、デスクトップ上に置いているので、デスクトップのパスを指定してるわけですね。

    実行結果をみても、ちゃんと、”java-sample1″ がコンソールに表示されていることも分かります。

    (その上の ”Picked up JAVA_TOOL_OPTIONS” については、デフォルトで毎回表示されるようになっていますが、特に気にしなくて良いです。)

    ちなみに、-classpath の、デフォルト値は、JDKのbinフォルダになります(以下)

    C:\java\openjdk-17.0.1_windows-x64_bin\jdk-17.0.1\bin

    なので、binフォルダに、「Sample1.class」を置いておけば、-classpathオプションを指定しなくても、問題なく実行されます。

  7. 「最後に・・・補足です」

    今回、上述の通り、「5」と「6」にて、javaプログラムのコンパイルと実行手順を解説してきましたが、

    今回はあくまで、コンソール(コマンドプロンプト)でのやり方です。

    開発環境(Eclipseなど)を利用すれば、コンパイルは、「.java」ファイルの保存時に、自動的にやってくれますし、実行についても、ボタン一つで実行してくれます。

    なので、javaのプログラミングをガッツリやっていく場合は、間違いなく開発環境を利用した方が、効率的にプログラミングを進めていけるので、そこは認識しておいてください。

以上、javaのダウンロード&インストールから、プログラムが動作するまでの基本的な流れについての、まとめでした。

(以下でもまとめていますので、良かったらぜひ。)

→ java(jdk)のダウンロード&インストール方法を初心者向けに解説 ~Windowsの環境構築

ということで、ここまでJavaについての基本的な内容について順に解説してきました。

今後、Javaについて学ぼうと思っている方。また、すでに学び始めている方。

そんな方々にとって、参考になれば幸いです。

コメントを残す

メールアドレスが公開されることはありません。