假如在D:\Java存放了兩個java源檔案:MyJava.java,Fighting.java
MyJava.java如下:
public class MyJava {
public static void main(String[] arr)
{
System.out.println("MyJava");
}
}
Fighting.java如下:
package mxw.ly;
public class Fighting {
public static void main(String[] arr)
{
System.out.println("學會使用java和javac命令");
}
}
javac命令
可以這樣編譯:
1. D:\
cd java
javac *.java
2. javac -sourcepath D:\java D:\Java\*.java
3. javac D:\Java\MyJava.java (尾碼名區分大小寫,如果輸入javac D:\Java\MyJava.Java,編譯就不能通過)
還可以指定編譯以後檔案的輸出目錄:javac -sourcepath D:\java -d D:\output D:\Java\*.java
(使用-d參數指定編譯以後的輸出目錄後,會自動將.java源檔案裡的包編譯成對應的檔案夾)
java命令
1.C:\Documents and Settings\Administrator>java -classpath D:\java; MyJava
2.D:\Java>java MyJava
Java指令分類名大小寫,並且不需要.class的尾碼名
在D:\Java有兩個java源檔案:
A.java:
public class A{
public static void Eat()
{
System.out.println("A.Eat");
}
}
B.java:
public class B extends A{
public static void main(String[] arr)
{
B b=new B();
b.Fun();
}
public void Fun()
{
super.Eat();
}
}
首先編譯:
C:\Documents and Settings\Administrator>javac D:\Java\B.java
會在D:\Java產生A.class和B.class兩個檔案
然後執行:java -classpath D:\java; B(如果在系統內容變數classpath裡指定了D:\java,可以直接輸入java B)
控制台輸出 A.Eat
將A.java放入D:\Java\import檔案夾
首先編譯:C:\Documents and Settings\Administrator>javac D:\Java\B.java
會報錯,因為A.java已經不跟B.java在同一目錄了
換個命令編譯:C:\Documents and Settings\Administrator>javac -classpath D:\java\Import; D:\Java\B.java
編譯成功,發現在D:\Java產生B.class,在D:\Java\import產生A.class
然後執行:C:\Documents and Settings\Administrator>java -classpath D:\java; B
會報錯,因為A.Class不跟B.class在同一目錄
換個命令執行:C:\Documents and Settings\Administrator>java -classpath D:\java;D:\java\import; B
執行成功,輸出A.Eat
如果系統變數classpath的值為D:\Java;D:\java\import; 可以在控制台直接輸入下面命令:java B
執行成功,輸出A.Eat