Successfully reported this slideshow.
Your SlideShare is downloading. ×

CH02:從JDK到IDE

CH02:從JDK到IDE

Download to read offline

學習目標

瞭解與設定PATH
瞭解與指定CLASSPATH、SOURCEPATH
使用package與import管理類別
初探模組平台系統
認識JDK與IDE的對應

學習目標

瞭解與設定PATH
瞭解與指定CLASSPATH、SOURCEPATH
使用package與import管理類別
初探模組平台系統
認識JDK與IDE的對應

More Related Content

Related Books

Free with a 30 day trial from Scribd

See all

CH02:從JDK到IDE

  1. 1. 1
  2. 2. 從JDK到IDE 學習目標 • 瞭解與設定PATH • 瞭解與指定CLASSPATH、 SOURCEPATH • 使用package與import管理類別 • 初探模組平台系統 • 認識JDK與IDE的對應 2
  3. 3. 從 "Hello, World" 開始 3
  4. 4. • 副檔名是 .java • 主檔名與類別名稱必須相同 • 注意每個字母大小寫 • 空白只能是半型空白字元或是Tab字元 4
  5. 5. PATH是什麼? • Java的編譯器工具程式是javac 5
  6. 6. PATH環境變數 6
  7. 7. 7
  8. 8. 8
  9. 9. • 重新開啟命令提示字元之後,就會套用新的 環境變數 9
  10. 10. • 在安裝多個JDK或JRE的電腦中,必須知道 執行了哪個版本的JDK或JRE,確定PATH 資訊是一定要做的動作 10
  11. 11. JVM(java)與classpath • JVM的可執行檔副檔名是.class • 啟動JVM,要求JVM執行HelloWorld指令 11
  12. 12. • Java SE 11以後,可以使用java直接執行 .java檔案 12
  13. 13. • 試著切換至C: 13
  14. 14. • 使用-classpath 14
  15. 15. • JVM預設的CLASSPATH就是讀取目前資料夾 中的.class 15
  16. 16. 編譯器(javac)與classpath • C:workspaceclasses中有個已編譯的 Console.class 16
  17. 17. • 找不到Console類別(cannot find symbol) 17
  18. 18. • 在使用javac編譯器時,若要使用到其他類 別程式庫時,也必須指定CLASSPATH 18
  19. 19. 編譯器(javac)與sourcepath • labs資料夾的Hello1資料夾複製至C:workspace 19
  20. 20. 20
  21. 21. 21
  22. 22. 使用package管理類別 • 分門別類管理類別的方式,無論是實體檔案 上的分類管理,或是類別名稱上的分類管理 22
  23. 23. 23
  24. 24. • 原始碼檔案要放置在與package定義名稱階 層相同的資料夾階層。 • package定義名稱與class定義名稱,會結 合而成類別的完全吻合名稱(Fully qualified name)。 • 位元碼檔案要放置在與package定義名稱階 層相同的資料夾階層。 • 要在套件間共用的類別或方法(Method)必 須宣告為public。 24
  25. 25. 原始碼檔案與套件管理 • 所有原始碼檔案放在src中管理 • Console.java就必須放在src資料夾中的 cc/openhome/util資料夾 • 不容易發生原始碼檔案彼此覆蓋的問題 25
  26. 26. 完全吻合名稱 26
  27. 27. 位元碼檔案與套件管理 • 位元碼檔案放在classes資料夾中管理 • Console.class就必須放在classes資料夾中的 cc/openhome/util資料夾 27
  28. 28. 使用import偷懶 28
  29. 29. • 多次使用import: • 更偷懶一些: 29
  30. 30. • 偷懶也是有個限度 30
  31. 31. 31
  32. 32. • java.lang套件 32
  33. 33. JVM(java)與module-path • 模組平臺系統跟Java程式語言本身沒有關係 • 你基於Console撰寫了新的程式庫 • 有同事想要使用你的程式庫 • 你不要同事直接呼叫Console類別相關功能 • 程式庫之間錯綜複雜的相依性 33
  34. 34. 第一個模組 • 範例檔中labs/CH02資料夾中的Hello2資料夾 至C:workspace 34
  35. 35. • 建立一個module-info.java 35
  36. 36. • module-info.java只是個設定檔 • module關鍵字僅在這個設定檔中設定之用, 不是Java程式語言的一部份 • 目前只能存取同一模組中的API,並且依賴 在Java標準API的java.base模組 • 可以在module-info.java中自行設定模組可以 公開哪些API,或者是依賴在哪個模組 36
  37. 37. • 可以將編譯出來的類別,放在mods資料夾中 對應模組名稱的資料夾之中 • 其他開發者若要使用這個模組,可以在執行 java時,透過--module-path(或縮寫-p )指定模組路徑 37
  38. 38. 模組描述檔(Module descripto) • 可以透過--module或縮寫-m指定模組的程 式進入點 • 在完全吻合名稱前要指定模組名稱,然而, 這僅僅只是工具層面的需求,在程式碼撰寫 上,使用模組中的API,不用進行任何變更 38
  39. 39. • 也可以基於類別路徑來使用 • 在類別路徑下被發現的類別,都會被自動歸 類到一個未具名模組(Unnamed module) • 未具名模組可以讀取其他模組 • 在模組路徑下被發現的類別,都屬於某個具 名模組(Named module) 39
  40. 40. 編譯器(javac)與module-path • 複製範例檔中labs/CH02的Hello3資料夾至 C:workspace • 為了讓其他模組能使用此模組下的API,必 須在模組描述檔中使用exports 40
  41. 41. • 對cc.openhome.util模組進行編譯: • 使用requires宣告依賴的模組 41
  42. 42. • 對cc.openhome模組進行編譯 • 在使用javac進行編譯時,也可以使用-- module-path指定模組路徑 42
  43. 43. 編譯器(javac)與module- source-path • --module-source-path可以指定模組的 原始碼路徑 43
  44. 44. IDE專案管理基礎 44
  45. 45. 45
  46. 46. 46
  47. 47. 47
  48. 48. 48
  49. 49. 49
  50. 50. 使用了哪個JRE? • 如果設定了PATH,會執行PATH 順序下找到 的第一個java可執行檔 50
  51. 51. 51
  52. 52. 52
  53. 53. 53
  54. 54. 類別檔案版本 54
  55. 55. 55
  56. 56. 56
  57. 57. 57
  58. 58. 58

×