シヨツ鬼のブログ

初心者向けに分かりやすくIT関連の情報を発信しています。

クラスパスってなに?

VisualStadioやeclipseに頼りきりだった僕はJavaコマンドプロンプトで実行できません(笑(えない)

ってことで、統合開発環境に頼らないJavaの実行手順を大公開!

 

 


「クラスパス」=「今のフォルダにないクラスを使いたいときに、そのクラスが保存されているフォルダまでのパス」

長い一言で言うとこんな感じです。

つまり、同じフォルダ内に使いたいクラスがみんないるときは不要です。

逆に、同じフォルダ内にいないクラスを使いたいときは、クラスパスというものを実行時につけて教えてあげないといかんのです。

 

で、クラスパス自体はjavaコマンドの際にオプション<-classpass>または<-cp>でつければいいみたいです。

例えば

javac -cp folder1 Test.java

java -cp folder1 Test

みたいな感じ

複数指定したいときはWindowsなら「;」、Linuxなら「:」で区切ります。

javac -cp folder1;folder2 Test.java

java -cp folder1:folder2 Test

みたいな。

 

例題やっときましょう。


 例題:メインメソッドを含むクラスと、「PPAP」って言うクラス、二つのクラスを別のフォルダに入れた状態で、実行しなさい。

1、準備

「C:older」に「folder1」「folder2」を作る。

f:id:shiyotsuki:20181210215921p:plain

C:olderに「folder1」と「folder2」を作る

2、メモ帳に下記のプログラムを書いて、Main.javaの名前で「folder1」に保存

public class Main{
public static void main(String[] args){
Ppap instance=new Ppap();
instance.say();
}
}

f:id:shiyotsuki:20181210220512p:plain

Main.javaを作る

3、「Main.java」がコンパイルできるか確かめてみる。

 

f:id:shiyotsuki:20181210220940p:plain

まだコンパイルできない

Ppapなんてないぜって怒られる。

当たり前だ。まだ作ってない。

4、「Ppap.java」を「folder2」に作る。

public class Ppap{
public void say(){
System.out.print("PPAP");
}
}

f:id:shiyotsuki:20181210221305p:plain

Ppap.javaを作る

 

5、「Ppap.java」を下記コマンドでコンパイルする。

cd ../folder

javac Ppap.java

f:id:shiyotsuki:20181210221636p:plain

Ppap.javaコンパイル成功

6、Ppap作ったので念のため、もう一度「Main.java」をコンパイル

f:id:shiyotsuki:20181210222409p:plain

やっぱりだめよね

7、いよいよクラスパスをつけてコンパイルしてみる

javac -cp ../folder2 Main.java

f:id:shiyotsuki:20181210222627p:plain

クラスパス通したらコンパイルできた

8、そのままクラスパスつけて実行だ!

f:id:shiyotsuki:20181210222854p:plain

なん..だと....

どうやら、クラスパスを指定すると今いるディレクトリも指定しなきゃダメなようです。

9、ということで、今いるディレクトリも含めたクラスパスで実行!

java -cp ../folder2;. Main

f:id:shiyotsuki:20181210223153p:plain

成功!

PPAP

10、ちなみにクラスパス無しで実行するとこんな感じでした

f:id:shiyotsuki:20181210223325p:plain

11、おまけで「folder」に「sayPPAP.bat」ってバッチを作ったよ

f:id:shiyotsuki:20181210223800p:plain

f:id:shiyotsuki:20181210223816p:plain

 

参考にしたサイト

https://www.sejuku.net/blog/62990