接續著上篇的內容,這篇要介紹情境二、三~
javac_practice
|-Controller
|--LinkPersonal.java
|-Model
|--Personal.java
Personal.java
package Model;
public class Personal{
private String name;
private String age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
}
LinkPersonal.java
package Controller;
import Model.Personal;
public class LinkPersonal {
public static void main(String[] args){
Personal personal = new Personal();
personal.setName("王小明");
System.out.print("名字:"+personal.getName());
}
}
javac Controller/LinkPersonal.java
注意!!在LinkPersonal檔案中有使用到import
在編譯(javac
)/運行(java
)檔案時,務必在程式碼中可讀取import路徑的位置進行編譯
以我示範的案例中,我要在javac_practice那層資料夾,才可以進行編譯。
若我在不對的位置進行編譯,便會出現以下錯誤訊息:
範例:
Personal.class便是一起被編譯出來的檔案
java
指令運行java Controller/LinkPersonal
或
java Controller.LinkPersonal
以上兩種寫法皆可運行
正常執行後,會出現在程式碼中賦予給Personal.name屬性的值打印出來
javac_practice
|-json.jar
|-Controller
|--LinkPersonal.java
|--UseJson.java
|-Model
|--Personal.java
json.jar,我是從mvnrepository搜尋JSON後下載的,載下來後更改檔名。
UseJson.java
package Controller;
import Model.Personal;
import org.json.JSONObject;
public class UseJson{
public static void main(String[] args) {
Personal personal = new Personal();
personal.setName("王小明");
personal.setAge("18");
JSONObject jsonObjectPersonal = new JSONObject(personal);
System.out.println("personal物件內容為:"+jsonObjectPersonal);
}
}
javac -cp .:json.jar Controller/UseJson.java
或
javac -classpath .:json.jar Controller/UseJson.java
在UseJson程式碼中引用到了第三方的jar,編譯(javac)時需加入-cp(-classpath)參數
官網的解釋如下
classpath:Specifies where to find user class files, and (optionally) annotation processors and source files. This class path overrides the user class path in the CLASSPATH environment variable. If neither CLASSPATH, -cp nor -classpath is specified, then the user class path is the current directory.
注意!!使用 cp 選項 一定要加 . 符號,這個表示當前路徑也在classpath 中,多個classpath 路徑 使用:符號分隔(windows環境 用;分隔);如果不加 . 當前路徑需要編譯的java檔案是尋找不到的會報錯。
我在這個地方也是踩了好大的一個坑,我一直沒有加上.
就一直出現下圖的畫面...
java
指令運行,也需要帶上cp
參數java -cp .:json.jar Controller/UseJson
或
java -classpath .:json.jar Controller/UseJson
javac
與java
這兩個指令真的要好好學起來,當遇到需要原始程式碼丟失,又必須要維運code 的時候,這兩個指令就派上用場啦!!
下篇接著要來介紹的是javap
反編譯工具