突然ですが、javaについて勉強していく事にしました。
経歴の関係でjavaをいじるのが初心者というわけではないですが、知識も浅いので復習もかねてjavaの知識を磨いていきたいと思いました。
ところでみなさん、javaには公式マスコットがいるみたいですね!
この記事を書いている時に初めて私は知りました。
タイトル通り"Hello java World"をやっていこうと思います。
今回は簡単なコンソールアプリケーションを作成するだけなので開発環境のeclipseを使用しないで作ってみようと思います!
eclipseなしの理由はと言いますと
「プログラミングの勉強するならまず自分でJDK(Java Development Kit)を使用しようぜ!」と言われたからです!
確かに今まで何も考えず、参考書通りeclipseを導入してプロジェクトを作成し、実行ボタンを押すだけでした。
なので今回の"Hello java World!"は物凄く難易度が高かったです!
友達からいただいた助言
プログラムを書く(.java)
↓
コンパイルする(バイトコード(.class)ができあがる) :JDKのjavac.exeを使用する
↓
JVM(ava virtual machine、Java VM) がバイトコードを解釈して実行する。 :JDKのjava.exeを使用する
今回は主にJDKのプログラミングツール
・javac.exe - Javaコンパイラで、ソースコードをJavaバイトコードに変換する。
・java.exe - Javaアプリケーション用のローダ。このツールはインタプリタで、javacコンパイラにより生成されたクラスファイルを解釈できる。
を使用すればできるらしい
まず一番最初にやった事はエクスプローラーでプロジェクトの作成(もちろん手動)
ドキュメント
├──workspace/
├──hellojavaworld/
├──Hellojava.java
プロジェクトのディレクトリはこんな感じで作成しました。
javaファイル名 = クラス名 = クラス名の頭は大文字が基本
次に環境の設定
・コマンドプロンプトでさっき作ったプロジェクトのhallojavaworldにディレクトリを移動
<基本コマンド>
cd パス - カレントディレクトリを変更
dir - カレントディレクトリにあるファイルやフォルダーの一覧
・環境変数PATHに一時的にJDKのPATHを追加しておく
※こんご使用率が高い場合は普通に環境変数PATHを通しておくのもありです。
set path=%path%;追加パス
私はeclipseの中にあるJDKを使用することにしました。
いよいよプログラムを書いていきます。
適当なテキストエディタでHellojava.javaを開きます。
※今回私が仕様しているエディタは"Visual Studio Code"です。
class Hellojava {
}
クラスの基礎
java(オブジェクト指向言語)では、このクラスをベースにシステムを作り上げていく。
クラスとクラスが連携し、ソフトウェアを形成していくらしいです。
とりあえずここまで書きコンパイルしてみます。
Javac Hellojava.java
javacを実行するとHellojava.javaの他にHellojava.class(javaバイトコード)が生成されます。
※再コンパイルすると新たなファイルが生成されるのではなく更新されるみたいです。
コンパイルできる事も確認できたし今度こそHello java World!を実行していきたいと思います!
class Hellojava {
public static void main (String[] args) {
System.out.println("Hello java World!");
}
}
public static void main (String[] args){}はプログラムを実行する時の玄関にあたる部分らしいです。
1プロジェクトに1つが原則です。
実際これなしにコンパイルしたらエラーがでました。
ついに実行します!
java Hellojava
見事Hello java World!が出現しました!
※よくありがちなミスとしてHellojava.classと書いてしまう場合があります。
実行する時は"ファイルパス"を指定するのではなく"クラス"を指定するみたいです。
感想
ネットを使い調べながらここまでやりましたが
eclipseを使ってしまえばプロジェクトを作成してSystem.out.println("Hello java Wlorld!");
を書いて実行ボタンを押すだけなんですよね。
JDKのくだりはほとんど理解せずできてしまうんですよね(私はこの記事書こうとするまで殆ど理解してませんでした)。