(myProject)
|
|--(source)
| |
| |--(com)
| |
| |--(coffee)
| |
| |--bowCoffee.java
| |--products.java
|
|--(classes)
|
|--(com)
|
|--(coffee)
|
|--bowCoffee.class
|--products.class
兩個檔案都是屬於com.coffee這個套件中
bowCoffee.java
package com.coffee;
public class bowCoffee{
void bow(String str){
System.out.println(str + " is bowing!");
}
}
products.java
package com.coffee;
import com.coffee.bowCoffee;
public class products{
public static void main(String[] args){
bowCoffee bc = new bowCoffee();
bc.bow("Blue Mountain coffee bean");
}
}
在編譯的時候在 C:\JavaProject\MyProject 下執行
-d classes 會將編譯好的.class依照他的套件目錄存放在classes資料夾中
javac -d classes source\com\coffee\bowCoffee.java
javac -d classes source\com\coffee\products.java
在執行products.java編譯時會出現以下錯誤,
因為products.java無法找到com.coffee.bowCoffee
source\com\coffee\products.java:2: cannot find symbol
symbol : class bowCoffee
location: package com.coffee
import com.coffee.bowCoffee;
^
source\com\coffee\products.java:5: cannot find symbol
symbol : class bowCoffee
location: class com.coffee.products
bowCoffee bc = new bowCoffee();
^
source\com\coffee\products.java:5: cannot find symbol
symbol : class bowCoffee
location: class com.coffee.products
bowCoffee bc = new bowCoffee();
^
3 errors
所以products.java要改以-cp(-classpath)的方式執行
javac -d classes -cp classes source\com\coffee\products.java
要用package路徑方可執行。
java -cp classes com.coffee.products
若在classes資料夾中則不需要在加-cp classes便可以執行。
備註:
現在開發JAVA的相關IDE都很放便,由其是在版本與套件管理上,
若想單純使用編譯器來開發大型程式,那-d與-cp(-classpath)的使用就相當重要了。