どーもー、現在某IT系の会社でjavaエンジニアとして働ている者です。(当ブログの管理人です)
今回は、これからjavaのプログラミングを学ぼうと思っている初心者の方を対象に、プログラミングをするための環境構築の手順や、
事前に知っておくべき知識(関連用語や、ライセンスなどの情報)について。
また、実際にjavaのプログラムを動作させるところまでを、順に解説していこうと思います。
というわけで、以下、目次になります。
- ダウンロード&インストール前に ~JDK、JRE、JVM 等の用語解説とライセンス情報について
- java(jdk)のダウンロード方法 ~Windows10版
- インストール方法&環境変数の設定手順まとめ ~Windows10への導入・入れ方
- javaの動作確認 ~インストール先の確認も。
- java(jdk)をインストールできない時の対応や、アンインストール方法について
※javaの基本については、以下の記事も参考にしてください。
・Javaとは?プログラミング言語の特徴や歴史、人気な3つの理由をわかりやすく解説!
javaをダウンロード&インストール前に・・・JDK、JRE、JVM 等の用語解説とライセンス情報について
まずは、javaの環境構築を始めていく前に、知っておいた方が良い情報について、こちらではまとめていきたいと思います。
以下、Javaを提供しているOracle(オラクル)社の公式サイトのダウンロードページになります。
・Oracle公式サイト:ソフトウェアのダウンロード:Java
上記を見れば分かる通り、「Java」のところに多くの項目が羅列されています。
「JRE」やら「JDK」やら、「Java SE」やら「Java EE」やら、初心者の方が見たら、「さっぱり分からん。。」ってなりますよね。
このように、javaのダウンロードページでは、様々な専門用語が出てきます。なので、初心者の方であれば、
「何をダウンロードすれば良いの?」となるでしょう。
なので、javaをダウンロード&インストールする際に知っておいた方が良いキーワードを以下にまとめてみました。
-
「Java SE(Java Platform Standard Edition)」
Javaで開発する時や動作させる際に、必要となる機能やデータがまとめられたものが、この「Java SE」になり、
Javaでプログラミングする際には、必ず必要となります。
※必要となる機能やデータがまとめられたもの・・・「クラス」や「API」と呼びます。(java.lang.String クラスなど、標準クラスが揃えられています)
現状、「Java」という言葉は、ほとんどのケースで「Java SE」(後述の「JDK」も含む)のことを指して使われているので、
Java = Java SE = JDK
上記の通り、理解しておけばOKです。
-
「Java EE(Java Platform Enterprise Edition)」
上述のオラクルの公式サイトもそうですが、Javaのダウンロードページでは、「Java EE」という言葉もよく見かけます。
こちらは、企業向けの大規模なWebアプリケーションを開発する際に、必要となる機能やデータがまとめられたもので、前述の「Java SE」を拡張したものとなります。
ちなみに、「J2EE(Java 2 Platform, Enterprise Edition)」という言葉も、業界ではよく利用されていますが、こちらは、Java EEの古い呼び方となります。
バージョン4までは「J2EE」で、バージョン5からは「Java EE」という名称に変わりました。
さらに、2018年2月に、Java EEは、「Jakarta EE」へ名称が変更されています。
もともと、Java EEは「Oracle」が管理していましたが、「Eclipse Foundation」に移管されたことによって、名前が変更になったのです。
(Javaという言葉はOracleの登録商標なので、移管後は使えなくなったために。。)
※「Jakarta EE」へ変更前の、最新バージョン:「Java EE 8(2017年リリース)」までは、SEとバージョンは紐づいていたようですが(SEのリリースから、1~3年後に後追いリリースしている)
変更後のバージョンについては、特に紐づいていないようです。
ちなみに、2019年に「Jakarta EE 8」。2020年に「Jakarta EE 9」のメジャーバージョンがリリースされているようです。
※現在では、「Java EE」をダウンロードしてプログラミングをしていくことは、あまり無い。という認識で良いです(会社など、何かしらの指定が無い限りは。)
-
「JVM(Java Virtual Machine:Java仮想マシン)」
こちらも、Javaのプログラミングを始める際には、必ずと言っていいほど知っておいたほうが良い用語となります。
JVMとは、Javaのプログラムを実行するための実行マシン(ソフトウェア)となります。
Javaの重要な特徴の一つに、どのコンピューター(OS)上でも、同じプログラム、かつ同じコンパイラで、同じように動作させることが可能。といった特徴がありますが、これを実現しているのが、「JVM」となります。
JVMが、コンパイルされたプログラム(どのOSでも共通の内容)を、各OSごとに問題なく動作させるよう調整(各OSごとの機械語に翻訳する)して実行しているためです。
※「コンパイラ」や「機械語」については、以下の記事にて分かりやすく解説しているので、参考にしてください。
ただし、JVM単体ではJavaプログラムを実行させることはできないため、(厳密には、実行はできるが、Java SEの標準クラス群が無いためにエラーとなる。)
JVMを単体でダウンロードすることはありません。必ず、後述している「JRE」or「JDK」をダウンロードすることになります。(詳細は後述にて)
-
「JRE(Java Runtime Environment:Java実行環境)」
JREは、Javaのプログラムを動作させるためのソフトウェアで、実行に必要なものを全て揃えたソフトウェアとなります。
「Java実行環境」とか、「Javaランタイム」と呼ばれています。
具体的には、以下のような構成となります。
JRE = JVM + JavaSE(標準API(クラス)群)ちなみに、よく間違われる注意点の一つに、このJREをダウンロード&インストールすれば、Javaプログラムを実行させることは可能ですが、開発(プログラミング)することはできません。。
なので、Javaのプログラミングをしたい場合には、「JRE」ではなく、次の「JDK」をダウンロード&インストールする必要があります。
また、「JRE」は対応する「Java SE」のバージョンに合わせて、バージョン番号が付けられています。(例えば、JRE 8とか、JRE 11とか。)
-
「JDK(Java Development Kit:Java開発キット)」
JDKは、Javaの開発(プログラミング)に必要なものが全てそろったソフトウェアとなります。
上図の通り、JDKには、「JRE(実行環境)」も含まれています。
JREに加えて、コンパイラやデバッガなど、開発に必要なものが追加されている形ですね。
上述で記載している通り、現状では、この「JDK」のことを指して、「Java」と呼んでいるケースがほとんどとなります。
Javaでプログラミングをする際は、このJDKが必須になります。
また、JREと同様に、JDKも、Java SEのバージョンに合わせて番号が付けられます。(例えば、JDK 8とか、JDK 11とか。)
以上、javaをダウンロード&インストールする際に知っておいた方が良いキーワードのまとめでした。
以下でも、各項目について詳細に解説しているので、良かったらぜひ参考にしてください。
→ Java SEとは?EE、MEとの違いや、JDK、JRE、JVMについて初心者向けに解説します
java(jdk)のライセンス情報について ~ダウンロード&インストールする前に知っておくべき事
上述の通り、プログラミング言語の「Java」を提供しているのは、オラクル(Oracle)という米国の大手IT企業になります。(エンジニアであれば、知らない人はいない有名なIT企業です。)
ただし、ライセンスの扱いはけっこう複雑となっていて、ライセンスは「JDK」が対象となっていて、大きく以下の2つに分けられています。
※勉強などの私用目的でJava(jdk)を利用するだけであれば(商用利用でなければ)、「Oracle JDK」or「Oracle open JDK」で良いので、ここの章はスキップしても大丈夫です。
-
「Oracle JDK」
名前の通り、オラクルが提供しているJDKであり、Javaのバージョン8までは、ライセンスは「BCL:Oracle Binary Code License」というもので、これは、デスクトップおよびサーバーによる私用・商用問わず、無償での利用を許可していました。
ただし、9以降のバージョンについては、以下の新ルールが追加される事となりました。(9のリリース日は、2017/9)
※JDKは半年ごとのメジャーアップデートを行い、新しいバージョンが出たタイミングで、古いバージョンの無償アップデート(セキュリティパッチ等)は行われなくなり、アップデートをするには有償となる、新ルールが追加されます。各メジャー・バージョンの無償アップデートは、リリース後、2回のみ行われます(3ヶ月ごとのアップデート)
参考:オラクル公式サイト:JDKの新しいリリース・モデルおよび提供ライセンスについて
(有償アップデートについての詳細(対象期間や、Ver8以前の扱い)は、上記の「オラクルによる有償サポートの提供」を参考にしてください。)
さらに、 2019年4月16日から、「Oracle JDK」のライセンスは、「OTN:Oracle Technology Network License」に変更になっています。
このライセンス変更によって、「Oracle JDK」は、開発用途などの私用利用には、無償で利用できますが、商用利用には有償(「Oracle Java SE Subscriptions」の購入)となってしまいます。
※ただし、変更対象となるのは、2019年4月16日時点で、無料サポート(アップデート)期間が、終わっていないバージョンのみとなります。なので、Ver7以前や、9,10については、BCLのままなので、商用利用も引き続きOKです(ただし、サポート対象外なので、なるべく早くバージョンアップをした方が良いでしょう。)
Ver8については、マイナーバージョンが「8u211」以降は「OTN」で、それより前は「BCL」という扱いになっています(ややこしいですね)
(この新ルール追加とライセンス変更によって、業界ではオラクルに対して批判の嵐で、Java離れが大きく進みました。)
では、もう一方のJDKは・・
-
「Open JDK」
「Oracle JDK」のライセンス変更によって、商用利用は有償となってしまいました。
そこで、その逃げ道となったのが、「Open JDK」となります。
Open JDKのライセンスは、「GPL v2.0(オープンソースのライセンス)」なので、私用・商用問わず、お金は掛かりません。(オラクルがサンを買収する前から。)
オラクルは、「Oracle JDK」を元に、「Open JDK」を提供しており、Ver11からは、全く機能差異が無いものとなっています。(11よりも前のバージョンについては、一部機能差異あり(有償機能のみ))
ただし、オラクルが提供する「Oracle Open JDK」については、上述のアップデートに関する制限があります。(半年以降は有償となってしまう)
なので、半年以降も同じバージョンを利用したい、かつ、アップデートのサポートを受けたい場合には、結局、「Oracle JDK」を利用することになってしまいます、、
(アップデートをしないと、セキュリティ的に脆弱性を含んでしまう問題が出てきます、、)
ただし、「Oracle Open JDK」は、「GPL v2.0」として公開されているので、他の企業がアップデート(セキュリティパッチ等を適用)して、再配布することが可能となっています。
そのため、SAP、Red Hat、Google、Amazon、MicroSoft等々、名だたる大手IT企業が、それぞれの「Open JDK」を公開するようになりました。
なので、例えば、「5年間無償でのセキュリティ・アップデート保障ありの、JDK11」を、利用することが可能になるわけですね。(いずれかの会社が提供している場合に限り)
ちなみに、私の働いている会社では、「Adopt Open JDK」を採用して、利用させていただいています。
以上、java(jdk)のライセンスについてのまとめでした。
ライセンスについては、以下でも詳細に解説しているので、良かったらぜひ参考にしてください。
→ 【javaの商用利用の有償化問題】OracleJDKとOpenJDKのライセンスの特徴と、OSS版のおすすめまとめ
すでに、java(jdk)がインストールされていないかの確認と、32bit or 64bit(PCのビット数)のチェック
ダウンロード前には、念のため、javaがすでにインストールされていないかの確認をしておきましょう。
チェック方法は簡単です。
まずは、以下の通り、コマンドプロンプトで「java」と入力して、Enterを押してください。
上記のように、”認識されていません” と表示されればOKです(インストールされていない可能性が高いです)
ただし、インストールはしているが、環境変数に「java」をセットしていないケースもあるので、
念のため、Cドライブ(Program Filesフォルダ等)に「java」フォルダが無いか確認してみてください。
(以下は、私のPCのCドライブになりますが、複数のJDKが入っているのが分かります。)
・
・
あとは、ダウンロードする際に必要となる情報ですが、「PCのビット数」を確認しておきましょう。
WindowsPCであれば、以下で確認できるはずです。
32bitか、64bitでダウンロードするファイルが違うので、こちらは必ずチェックしておいてください。
※Javaのバージョンによっては、64bitしか無いものもあり。
java(jdk)のダウンロード方法 ~Windows10の実行・開発環境構築
※Windows10と記載していますが、Windowsであれば、他のバージョンでも良いので参考にしてください。
※また今回は、「Oracle open JDK」のダウンロード&インストール方法の解説になりますが、単なる勉強などの私用目的であれば、「Oracle JDK」でも大丈夫です。
ではさっそく。
まずは、以下の「Oracle OpenJDK」公式ページにアクセスしてください。
・Oracle OpenJDK 公式HP:ダウンロードページ
特にバージョンの指定がなければ、「Ready for use」のJDKで良いでしょう。
バージョンの指定があれば、「Reference implementations」にて、選択してください。
今回は、WindowsのPCにインストールするので、「Windows/x64」の「zip」を選択して、ダウンロードします。
※上記から、JDK17については、64bit用しか無いことが分かります。
これで、ダウンロードは完了です。
java(jdk)のインストール方法&環境変数(Path)の設定手順まとめ ~Windows10への導入・入れ方
※Windows10と記載していますが、Windowsであれば、他のバージョンでも良いので参考にしてください。
まずは、ダウンロードしたファイルを解凍してください。
今回は、「C:\java」の配下に、解凍したフォルダを配置しています。(場所はどこでも良いです)
以上、java(jdk)のインストールはこれで完了です。
続いて、環境変数を設定していきます。
環境変数とは、PCの設定で、ソフトウェアのパス(場所)を定義したものです。
今回で言えば、Javaの場所を定義します。
そうすることで、PCが、Javaの場所を認識し、javaを実行する際に、わざわざ先ほどインストールしたフォルダを指定しなくても、実行することが可能となります。
以下、環境変数のPathを設定する前と後の、イメージになります。
上記は、どちらもjavaを実行(バージョンの確認)しているのですが、環境変数を設定する前は、インストールしたjdkのbinフォルダを指定して、実行しています。(じゃないと、エラーになります)
逆に、設定したあとは、どこの場所(path)でも、javaの実行が可能となります。
なんとなく、イメージできましたでしょうか。
では、実際に設定していきます。
まずは、環境変数の設定画面を開きます。(以下のように、検索窓で、”環境変数” と検索して、画面を開いてください。)
続いて、「システムのプロパティ」画面が開くので、下図を参考に、環境変数のPathを設定していってください。
一点、「ユーザー環境変数」と「システム環境変数」がありますが、システム全体への適用で良いと思うので、「システム環境変数」の方の、Pathを設定してください。
Pathは、インストールしたjdkのbinフォルダを指定してください。(厳密には、java.exe が存在するフォルダ)
以上で設定は完了です。
以下の通り、「java -version」と実行して、結果が表示されればOKです。
※ちなみに、ここまで解説しといてアレですが、環境変数の設定は必須ではありませんので参考までに。(私は設定していません)
java(jdk)の動作確認 ~メモ帳でのプログラミングと、コマンドでのコンパイル+実行手順です
javaのインストールが完了したところで、さっそくプログラミング+コンパイル+実行をして、動作確認をしていきましょう。
通常、Javaのプログラミングは、IDEと言って「統合開発環境」を利用してプログラミングをしていくのですが、
今回はあくまで簡易的な動作確認だけなので、普通に「メモ帳」等のエディタを利用していきます。
IDE(統合開発環境)については、以下の記事にて詳細に解説しているので、ぜひ参考にしてみてください。
→ 【Eclipse入門】ダウンロード&インストール方法 ~java統合開発環境の構築手順まとめ
※Javaのプログラミングに、IDEは必須と言っていいでしょう。私の職場でも、EclipseというIDEを利用して開発をしています。
では、「プログラミング」、「コンパイル」、「実行」と、3ステップに分けて、順に解説していきます。
-
「プログラミング」
まずは、以下の通り、拡張子:「.java」のファイルを作成してください。
※ファイル名の「Sample1」の部分は、何でも良いです。
以下が、ファイルの中身(javaプログラムのサンプル)になります。
public class Sample1 { public static void main(String[] args) { System.out.println("java-sample1"); } }
プログラムの内容は、”java-sample1″ と表示させるだけのプログラムですが、詳細なプログラムの解説についてはココでは割愛します。
-
「コンパイル」
プログラムファイル(.java)の作成ができたら、次はコンパイルをして、クラスファイル(.class)を新規作成します。
※コンパイルとは・・・javaで記載されたプログラムを、PCが理解できる(実行可能な)「機械語」に変換する作業のことを言います。(厳密には、JVMが認識可能な「バイトコード(中間言語)」への変換となります。)※上記の通り、「.java」のままだと、プログラムを実行することができないので、「.class」ファイルに変換することで、実行させることができます。
コンパイルする手順は、
コマンドプロンプトで、先ほどインストールした「jdk」の「bin」ディレクトリに移動して、「javac」コマンドで、上記にて作成した「.java」を指定して実行します。(以下、例)
C:\java\openjdk-17.0.1_windows-x64_bin\jdk-17.0.1\bin>javac C:\Users\●●●\Desktop\Sample1.java
※環境変数(Path)を設定している場合は、binディレクトリに移動しなくても(どこからでも)、「javac」の実行が可能となります。
※「javac」・・・javaプログラムをコンパイルするコマンドになります。
コンパイルが正常に終わると、「.java」が存在するパスに「.class」が新規に作成されます。
※ちなみに、javaプログラムに問題がある場合はコンパイルに失敗し、クラスファイルは生成されません。エラー内容はコマンドプロンプトに表示されるので、解決してから、再度コンパイルをする必要があります。
-
「実行」
コンパイルまで終わったら、あとは「.class」ファイル(プログラム)を実行するだけです。
実行も、コマンドプロンプト上でおこないます。
先ほどインストールした「jdk」の「bin」ディレクトリに移動して、「java」コマンドで実行します。
(環境変数(Path)に設定している場合は、binに移動しなくても大丈夫です。)
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-sample1″ がコンソールに表示されていることも分かりますね。
(その上の ”Picked up JAVA_TOOL_OPTIONS” については、デフォルトで毎回表示されるようになっていますが、特に気にしなくて良いです。)
1点注意点として、実行する際は、ちゃんと「クラスパス」と「クラス名」を指定する必要があります。
クラスパスとは・・・「.class」ファイルがあるディレクトリパスのことで、-classpathオプションで、パスを指定します。
今回は、「Sample1.class」は、デスクトップ上に置いているので、デスクトップのパスを指定してるわけですね。
クラス名は、「Sample1」になります。
以上、プログラミング>コンパイル>実行と、一通りの動作確認の流れを解説してきました。
ちなみに、今回はメモ帳とコマンドを利用してきましたが、
開発環境(Eclipseなど)を利用すれば、コンパイルは、「.java」ファイルの保存時に、自動的にやってくれますし、実行についても、ボタン一つで実行してくれます。
なので、javaのプログラミングをガッツリやっていく場合は、間違いなく開発環境を利用した方が、効率的にプログラミングを進めていけるので、ぜひ利用するようにしてください。
最後に、、java(jdk)をインストールできない時の確認事項や、アンインストール方法について
まずは、現状のインストール状況の確認をしてください。
そもそもjavaがインストールされているのか不明なケースの場合は、確認事項は以下の4点になります。
-
コマンドプロンプトで「java」が認識するか確認
「java -version」で、バージョンも確認しておくと良いでしょう。
-
「コントロールパネル>プログラム>プログラムのアンインストール」から、javaが存在するか確認
-
「コントロールパネル>システムとセキュリティ>管理ツール>サービス」から、javaが存在するか確認
-
Cドライブに、”java” や “Oracle” と、名の付くフォルダがあるか確認
「確認すべきフォルダ例」・C:\ProgramData\
・C:\Program Files\
・C:\Users\xxx(ログインユーザー名)\AppData\
以上、4つの確認ポイントでした。
上記の確認にて、すでにjavaがインストールされている場合、それを利用するのであれば何も問題は無いのですが、
もし、「新たに、最新バージョンのjavaをインストールしたい」としたい場合には、古いものをアンインストールしなければいけないケースもあります。
※今回みたいに、ファイルをそのままダウンロードしてくる方法であれば(インストーラーやセットアップを利用していない場合)は、古いものが残っていても問題は無い想定ですが。。
私のPCでも、複数のバージョンのjava(jdk)で並行運用しています。
アンインストールが必要な場合は、基本的には、他のソフトウェアをアンインストールする手順と同じです。
この方法でアンインストールできない場合は、以下を参考にしてください。
→ java(JDK)をアンインストール(削除)する方法まとめ ~Windows&Mac編
以上です、アンインストールが完了したら、再起動して、再度インストールをしてみてください。
というわけで、だいぶ長くなりましたが、ここまでjava(JDK)のダウンロード&インストールと、動作確認の手順についてまとめてきました。
今後、javaプログラミングを始めようと思っている方や、学んでいこうと思っている方の参考になっていれば幸いです。
以下も良かったら参考にしてみてください。