ソースファイルとクラスファイルを分ける src bin - 萌えJava超入門
第十四章 クラスとパッケージ

ソースファイルと
クラスファイルを分ける

ソースファイルとクラスファイルを別々のフォルダに分ける例です。
java javacコマンドのオプションを使います。


 javac -d bin -sourcepath src src/pack_01/Main.java

 java -cp bin pack_01.Main

配布を想定するなら、
ソースとバイナリは
分けておいた方が便利だな。


目次

1.ソースファイルを srcフォルダに配置する


ソースファイルとクラスファイルを別のフォルダに分けて管理する方法もあります。
ソースファイルは、「src」フォルダに、
クラスファイルは、「bin」フォルダにまとめましょう。
前のページのソースファイルをそのまま使って、以下のように配置してください。

コンパイル前の配置
  project
    |---src
        |---pack_01
        |     |---Main.java <-- パッケージ「pack_01」に所属
        |
        |---pack_02
        |     |---KlassA.java <-- パッケージ「pack_02」に所属
        |     |---KlassB.java <-- パッケージ「pack_02」に所属
        |
        |---pack_03
              |---KlassC.java <-- パッケージ「pack_03」に所属
              |---KlassE.java <-- パッケージ「pack_03」に所属


srcフォルダを作って
パッケージを中に入れた。
パッケージはそのままなんすね。


2.サンプルプログラムのコンパイル


mkdir bin で「bin」フォルダを作成して、
以下のようにjavacコマンドを実行してください。

コマンドライン
>cd ws/project
ws/project>mkdir bin    <-- binフォルダ作成
ws/project>javac -d bin -sourcepath src src/pack_01/Main.java

javacコマンドのオプションをいくつか使っています。
-d bin → binフォルダにクラスファイルを出力する
-sourcepath src → ソースファイルが srcフォルダにある
といった意味です。

ご参考↓
javacコマンドのよく使うオプション
src と bin を分けるなら
このオプションは
ほとんどデフォルトだ。
コンパイル後の配置
  project
      |---src
      |   |---pack_01
      |   |     |---Main.java
      |   |
      |   |---pack_02
      |   |     |---KlassA.java
      |   |     |---KlassB.java
      |   |
      |   |---pack_03
      |         |---KlassC.java
      |         |---KlassE.java
      |
      |---bin
          |---pack_01
          |     |---Main.class
          |
          |---pack_02
          |     |---KlassA.class
          |     |---KlassB.class
          |
          |---pack_03
                |---KlassC.class
                |---KlassE.class


すごい!
完璧!
超ーきれい!!


3.サンプルプログラムの実行


コマンドライン
ws/project>java -cp bin pack_01.Main
pack_02.KlassA
pack_02.KlassB
pack_03.KlassC
pack_03.KlassD


javaコマンドの「-cp」オプションを使っています。
-cp bin → binフォルダにクラスファイルがあります。
といった意味です。

ちなみに、binフォルダに移動してから
java pack_01.Main
としても同じだ。
整理整頓はできましたが、
コマンドがえらく長くなったっス。
ちょっと厳しい。
え~と...。
スクリプトとかバッチファイルにしたら
どうかなぁ。
そうゆうのを覚えたくて
みんな来てるのよ!


お疲れ様でした。


© 2019 awasekagami