LoginSignup
0
0

More than 3 years have passed since last update.

JavaのpathとPackageに関するメモ

Last updated at Posted at 2020-02-27

①前提
構成ディレクトリ
- stage11
- test10
- BondTest.java
- issues
- Position.java
- Bond.java
現在地
カレントディレクトリはtest10となっている.

実行ファイルと呼び出すファイル
 実行ファイルはBondTest.java
 実行ファイルから呼び出すファイルはPosition.javaとBond.java

②package名に関して
package名はソースファイルが入っているフォルダ名1つをつけてあげる

BondTest.java
 package test10;
Position.java
 package issues;
Bond.java
 package issues;

③クラスパス
packageのルートディレクトリをつけることが肝であった.
今回はBondTest.javaはpackage test10であるからstage11を指定する必要がある.
また呼びだすファイルはpackage issuesであるから一つ上のtest10を指定する必要がある.
クラスパスは以上の2つある.

④import
import文はBondTest.javaからPosition.javaとBond.javaを呼びだす際に必要になる.BondTest.javaのpackageがtest10であるから相対パスは,issues.~となる.よって

BondTest.java
 import issues.Position;
 import issues.Bond;

⑤javacとjava
いよいよjavacでコンパイルしてjavaで実行するわけである.
javac -cp ..:. BondTest.java
が正解である.
.. は実行ファイルのpackageのルートディレクトリである.
. はPosition.javaとBond.javaのpackage issuesのルートディレクトリ.
ファイル名はBondTest.javaであるのも意外と間違えてtest10.BondTest.javaとかやりたくなるが書かない.

次にjavaコマンドで実行する.-cpはそのままであるからほぼ変わらないが,重要な点が一点あった.
javac -cp ..:. test10.BondTest.java
が正解なのである.javaコマンドでは,package名から書くことを忘れがちになるので注意が必要である.

最後にまとめると,

 ディレクトリが揃っていること
 実行ファイルのディレクトリにいること
この前提のもとで,
 package名のルートディレクトリをクラスパスに指定すること
 package名をjavacではつけずjavaではつけることになること

このあたりが要点になる.ディレクトリ構成が異なる人はうまくいかないことがあるかもしれないので検索して自分の形に合ったディレクトリを見つけることが重要である.

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0