クラスパスってなに?
VisualStadioやeclipseに頼りきりだった僕はJavaをコマンドプロンプトで実行できません(笑(えない))
ってことで、統合開発環境に頼らないJavaの実行手順を大公開!
- 「クラスパス」=「今のフォルダにないクラスを使いたいときに、そのクラスが保存されているフォルダまでのパス」
- 例題:メインメソッドを含むクラスと、「PPAP」って言うクラス、二つのクラスを別のフォルダに入れた状態で、実行しなさい。
「クラスパス」=「今のフォルダにないクラスを使いたいときに、そのクラスが保存されているフォルダまでのパス」
長い一言で言うとこんな感じです。
つまり、同じフォルダ内に使いたいクラスがみんないるときは不要です。
逆に、同じフォルダ内にいないクラスを使いたいときは、クラスパスというものを実行時につけて教えてあげないといかんのです。
で、クラスパス自体は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」を作る。
2、メモ帳に下記のプログラムを書いて、Main.javaの名前で「folder1」に保存
public class Main{
public static void main(String[] args){
Ppap instance=new Ppap();
instance.say();
}
}
3、「Main.java」がコンパイルできるか確かめてみる。
Ppapなんてないぜって怒られる。
当たり前だ。まだ作ってない。
public class Ppap{
public void say(){
System.out.print("PPAP");
}
}
cd ../folder
6、Ppap作ったので念のため、もう一度「Main.java」をコンパイル
7、いよいよクラスパスをつけてコンパイルしてみる
javac -cp ../folder2 Main.java
8、そのままクラスパスつけて実行だ!
どうやら、クラスパスを指定すると今いるディレクトリも指定しなきゃダメなようです。
9、ということで、今いるディレクトリも含めたクラスパスで実行!
java -cp ../folder2;. Main
PPAP!
10、ちなみにクラスパス無しで実行するとこんな感じでした
11、おまけで「folder」に「sayPPAP.bat」ってバッチを作ったよ
参考にしたサイト