從JDK到IDE

Justin Lin
Justin LinTechnology / Community Evangelist at Free lancer
1
從JDK到IDE
學習目標
• 瞭解與設定PATH
• 瞭解與指定CLASSPATH、SOURCEPATH
• 使用package與import管理類別
• 初探模組平台系統
• 認識JDK與IDE的對應
2
撰寫Java原始碼
3
撰寫Java原始碼
4
撰寫Java原始碼
• 副檔名是 .java
• 主檔名與類別名稱必須相同
• 注意每個字母大小寫
• 空白只能是半型空白字元或是Tab字元
5
PATH是什麼?
6
PATH是什麼?
7
PATH是什麼?
8
PATH是什麼?
9
10
PATH是什麼?
• 建議將JDK的bin路徑放在Path變數的最前方
– 因為系統搜尋Path路徑時,會從最前方開始,如果路徑
下找到指定的工具程式就會直接執行
• 若系統中安裝兩個以上JDK時,Path路徑中設定的
順序,將決定執行哪個JDK下的工具程式
• 在安裝了多個JDK或JRE的電腦中,確定執行了哪
個版本的JDK或JRE非常重要,確定PATH資訊是一
定要作的動作
11
JVM(java)與CLASSPATH
12
JVM(java)與CLASSPATH
• 實體作業系統下執行某個指令時,會依PATH中的路
徑資訊,試圖找到可執行檔案
• JVM是Java程式唯一認得的作業系統,對JVM來說,
可執行檔就是副檔名為.class的檔案
• 想在JVM中執行某個可執行檔(.class),就要告訴
JVM這個虛擬作業系統到哪些路徑下尋找檔案,方
式是透過CLASSPATH指定其可執行檔(.class)的
路徑資訊
13
JVM(java)與CLASSPATH
14
JVM(java)與CLASSPATH
• 如果在JVM的CLASSPATH路徑資訊中都找不
到指定的類別檔案
– JDK7前會出現
java.lang.NoClassDefFoundError訊息,
而JDK7之後的版本會有比較友善的中文錯誤訊
息
15
JVM(java)與CLASSPATH
• JVM預設的CLASSPATH就是讀取目前資料夾
中的.class
• 如果自行指定CLASSPATH,則以指定的為主
16
JVM(java)與CLASSPATH
• 希望也從目前資料夾開始尋找類別檔案,則
可以使用.指定
17
JVM(java)與CLASSPATH
• 程式庫中的類別檔案,會封裝為JAR(Java
Archive)檔案,也就是副檔名為.jar的檔案
– 使用ZIP格式壓縮,當中包含一堆.class檔案
• 例如,有abc.jar與xyz.jar放在C:lib底下,執
行時若要使用JAR檔案中的類別檔案:
18
JVM(java)與CLASSPATH
• 如果有些類別路徑很常使用,其實也可以透
過環境變數設定。例如:
• 在啟動JVM時,也就是執行java時,若沒使
用-cp或-classpath指定CLASSPATH,就會讀
取CLASSPATH環境變數
19
JVM(java)與CLASSPATH
• 從Java SE 6開始,可以使用*表示使用資料夾
中所有.jar檔案
• 例如指定使用C:jars下所有JAR檔案:
20
編譯器(javac)與CLASSPATH
• 在光碟中labs/CH2資料夾中有個classes資料夾,
請將之複製至C:workspace中,確認
C:workspaceclasses中有個已編譯的
Console.class
21
編譯器(javac)與CLASSPATH
• 可以在C:workspace中開個Main.java,如下使
用Console類別
22
編譯器(javac)與CLASSPATH
23
編譯器(javac)與CLASSPATH
24
管理原始碼與位元碼檔案
• 來觀察一下目前你的C:workspace,原始碼
(.java)檔案與位元碼檔案(.class)都放在
一起
• 想像一下,如果程式規模稍大,一堆.java
與.class檔案還放在一起,會有多麼混亂
• 你需要有效率地管理原始嗎與位元碼檔案
25
編譯器(javac)與SOURCEPATH
• 請將光碟中labs資料夾的Hello1資料夾複製至
C:workspace中
• Hello1資料夾中有src與classes資料夾,src資
料夾中有Console.java與Main.java兩個檔案
26
編譯器(javac)與SOURCEPATH
• src資料夾將用來放置原始碼檔案,而編譯好
的位元碼檔案,希望能指定存放至classes資
料夾
27
編譯器(javac)與SOURCEPATH
• 使用-sourcepath指定從src資料夾中尋找原
始碼檔案,而-d指定了編譯完成的位元碼存
放資料夾
• 編譯器會將使用到的相關類別原始碼也一併
進行編譯
28
編譯器(javac)與SOURCEPATH
• 可以在編譯時指定-verbose引數,看到編譯
器進行編譯時的過程
29
30
編譯器(javac)與SOURCEPATH
• 實際專案中會有數以萬計的類別,如果每次
都要重新將.java編譯為.class,那會是非常費
時的工作
• 編譯時若類別路徑中已存在位元碼,且上次
編譯後,原始碼並沒有修改,無需重新編譯
會比較節省時間
31
32
使用package管理類別
• .java放在src資料夾中,編譯出來的.class放置
在classes資料夾下
• 就如同你會分不同資料夾來放置不同作用的
檔案,類別也應該分門別類加以放置,
• 無論是實體檔案上的分類管理,或是類別名
稱上的分類管理,有個package關鍵字,可
以協助你達到這個目的
33
使用package管理類別
• 用編輯器開啟2.2.2中Hello1/src資料夾中的
Console.java,在開頭鍵入下圖反白的文字:
• Console類別將放在cc.openhome.util的分類
下,以Java的術語來說,Console這個類別將放在
cc.openhome.util套件(package)
34
使用package管理類別
• 再用文字編輯器開啟2.2.2中Hello1/src資料夾
中的Main.java,在開頭鍵入下圖反白的文字
• 這表示Main類別將放在cc.openhome的分
類下
35
使用package管理類別
• 原始碼檔案要放置在與package所定義名稱階層相
同的資料夾階層
• package所定義名稱與class所定義名稱,會結合而
成類別的完全吻合名稱(Fully qualified name)
• 位元碼檔案要放置在與package所定義名稱階層相
同的資料夾階層
• 要在套件間可以直接使用的類別或方法(Method)
必須宣告為public
36
原始碼檔案與套件管理
• 由於Console類別使用package定義在
cc.openhome.util套件下,所以
Console.java必須放在src資料夾中的
cc/openhome/util資料夾
• Main類別使用package定義在
cc.openhome套件下,所以Main.java必須
放在src資料夾中的cc/openhome資料夾
37
完全吻合名稱(Fully qualified name)
• Main類別是位於cc.openhome套件分類中,
其完全吻合名稱是cc.openhome.Main
• Console類別是位於cc.openhome.util
分類中,其完全吻合名稱為
cc.openhome.util.Console
38
• 如果是相同套件中的類別,只要使用class
所定義的名稱即可
• 不同套件的類別,必須使用完全吻合名稱
• 由於Main與Console類別是位於不同的套
件中
完全吻合名稱(Fully qualified name)
39
位元碼檔案與套件管理
• 由於Console類別使用package定義在
cc.openhome.util套件下,所以編譯出
來的Console.class必須放在classes資料夾中的
cc/openhome/util資料夾
• Main類別使用package定義在
cc.openhome套件下,所以Main.class必須
放在classes資料夾中的cc/openhome資料夾
40
位元碼檔案與套件管理
• 在編譯時若有使用-d指定位元碼的存放位置,
就會自動建立出對應套件階層的資料夾,並
將編譯出來的位元碼檔案放置至應有的位置
41
使用import偷懶
• 每次撰寫程式時,都得鍵入完全吻合名稱,
也是件麻煩的事 …
42
使用import偷懶
• import只是告訴編譯器,遇到不認識的類別
名稱,可以嘗試使用import過的名稱
• import讓你少打一些字,讓編譯器多為你作
一些事
43
使用import偷懶
• 如果同一套件下會使用到多個類別,你也許
會多次使用import:
• 你可以更偷懶一些,用以下的import語句:
44
使用import偷懶
• 偷懶也是有個限度,如果你自己寫了一個
Arrays:
• 若在某個類別中撰寫有以下的程式碼:
45
使用import偷懶
• 底該使用cc.openhome.Arrays還是
java.util.Arrays?
46
使用import偷懶
• 遇到這種情況時,就不能偷懶了,你要使用
哪個類別名稱,就得明確地逐字打出來:
47
使用import偷懶
• 寫第一個Java程式時使用的System類別,其
實也有使用套件管理,完整名稱其實是
java.lang.System
• 在java.lang套件下的類別由於很常用,不
用撰寫import也可以直接使用class定義
的名稱
48
使用import偷懶
• 當編譯器看到一個沒有套件管理的類別名稱,
會先在同一套件中尋找類別,如果找到就使
用,若沒找到,再試著從import陳述進行比
對
• java.lang可視為預設就有import,沒有
寫任何import陳述時,也會試著比對
java.lang組合,看看是否能找到對應類別
49
初探模組平臺系統
• Java SE 9的重大特性之一
• 雖然基於相容性,你仍然可以使用基於類別
路徑的方式來組織、建立程式庫
• Java SE 9的標準API已經劃分為各個模組
• 你在查詢API文件、使用其他運用了模組的程
式庫時,總是會面對模組相關訊息
50
JVM(java)與module-path
• 模組平臺系統要知道的第一件事是,它跟
Java程式語言本身沒有關係
• 是為了管理程式庫本身的功能封裝、程式庫
之間的相依性等需求而存在
51
• 請複製範例檔中labs/CH02資料夾中的Hello2
資料夾至C:workspace
52
• 第一件事是決定模組名稱,這邊假設模組名
稱為cc.openhome
• 建議建立一個與模組名稱相同的資料夾,然
後其中依套件設定的階層放入原始碼
53
• 在cc.openhome資料夾中建立一個module-
info.java
54
• 雖然module-info.java的副檔名為.java,它實
際上只是個設定檔
• 其中的module關鍵字僅在這個設定檔中進行
設定之用,不是Java程式語言的一部份
• 副檔名為.java,單純只是為了相容性,讓
javac等工具程式易於處理這個設定檔
55
• 目前只能存取同一模組中的API,並且依賴
在Java標準API的java.base模組
• java.base模組包含且exports了
java.lang等常用套件
• 可以在module-info.java中設定自己的模組可
以公開哪些API,或者是依賴在哪個模組之
上。
56
57
編譯器(javac)與module-
path
• 製範例檔中labs/CH02的Hello3資料夾至
C:workspace
58
59
編譯器(javac)與module-
source-path
60
• 可以暫時將--module-path與--module-
source-path想像成-classpath與-
sourcepath的對應物
61
IDE專案管理基礎
62
IDE專案管理基礎
63
IDE專案管理基礎
64
65
66
使用了哪個JRE?
• 因為各種原因,你的電腦中可能不只存在一
套JRE!
• 在文字模式下鍵入java指令,如果設定了
PATH,會執行PATH 順序下找到的
第一個java可執行檔,這個可執行檔所啟動
的是哪套JRE?
67
使用了哪個JRE?
• 在執行java指令時,可附帶一個-version
引數,這可以顯示執行的JRE版本
68
使用了哪個JRE?
• 如果有個需求是切換JRE,文字模式下必須
設定PATH順序中,找到的第一個JRE之 bin資
料夾是你想要的JRE,而不是設定
CLASSPATH
• 如果使用IDE新增專案,你使用了哪個JRE呢?
69
類別檔案版本
• 如果使用新版本JDK編譯出位元碼檔案,在
舊版本JRE上執行,可能發生以下錯誤訊息…
70
類別檔案版本
• 編譯器會在位元碼檔案中標示主版本號與次
版本號,不同的版本號,位元碼檔案格式可
能有所不同
• JVM在載入位元碼檔案後,會確認其版本號
是否在可接受的範圍,否則就不會處理該位
元碼檔案
71
類別檔案版本
• 可以使用JDK工具程式javap,確認位元碼
檔案的版本號:
72
類別檔案版本
• System.getProperty(“java.class.v
ersion”)可取得JRE支援的位元碼版本號
• System.getProperty(“java.runtime
.version”)可取得JRE版本訊息
73
類別檔案版本
• 在編譯的時候,可以使用-target指定編譯
出來的位元碼,必須符合指定平台允許的版
本號
• 使用-source要求編譯器檢查使用的語法,
不超過指定的版本
74
類別檔案版本
75
類別檔案版本
• 在不指定-target與-source的情況下,編
譯器會有預設的-target值
• JDK9預設的-target與-source都是1.9
• -target在指定時,值必須大於或等於-
source
76
類別檔案版本
• 如果只指定-source與-target進行編譯,會出現
警示訊息,這是因為編譯時預設的Bootstrap類別載
入器(Class loader)沒有改變
• 系統預設的類別載入器仍參考至1.9的相關類別
• 如果引用到一些舊版JRE沒有的新API,就會造成在
舊版JRE上無法執行
• 最好是編譯時指定-bootclasspath,參考至舊版
的rt.jar,這樣在舊版JRE執行時比較不會發生問題
77
• JDK9中使用javac時,可以使用--
release引數一次指定指定-source、-
target與-bootclasspath
78
類別檔案版本
• 那麼在IDE中如何設定-source與-target
對應的選項呢?以 NetBeans 為例…
79
1 of 79

Recommended

Java SE 7 技術手冊投影片第 02 章 - 從JDK到IDE by
Java SE 7 技術手冊投影片第 02 章 - 從JDK到IDEJava SE 7 技術手冊投影片第 02 章 - 從JDK到IDE
Java SE 7 技術手冊投影片第 02 章 - 從JDK到IDEJustin Lin
3.6K views66 slides
Java SE 8 技術手冊第 2 章 - 從JDK到IDE by
Java SE 8 技術手冊第 2 章 - 從JDK到IDEJava SE 8 技術手冊第 2 章 - 從JDK到IDE
Java SE 8 技術手冊第 2 章 - 從JDK到IDEJustin Lin
5.3K views66 slides
2. 從 REPL 到 IDE by
2. 從 REPL 到 IDE2. 從 REPL 到 IDE
2. 從 REPL 到 IDEJustin Lin
234 views28 slides
Java SE 7 技術手冊投影片第 14 章 - 整合資料庫 by
Java SE 7 技術手冊投影片第 14 章 - 整合資料庫Java SE 7 技術手冊投影片第 14 章 - 整合資料庫
Java SE 7 技術手冊投影片第 14 章 - 整合資料庫Justin Lin
2.1K views100 slides
Java SE 7 技術手冊投影片第 09 章 - Collection與Map by
Java SE 7 技術手冊投影片第 09 章 - Collection與MapJava SE 7 技術手冊投影片第 09 章 - Collection與Map
Java SE 7 技術手冊投影片第 09 章 - Collection與MapJustin Lin
2.5K views68 slides
CH02:從JDK到IDE by
CH02:從JDK到IDECH02:從JDK到IDE
CH02:從JDK到IDEJustin Lin
481 views58 slides

More Related Content

What's hot

Java SE 7 技術手冊投影片第 12 章 - 通用API by
Java SE 7 技術手冊投影片第 12 章  - 通用APIJava SE 7 技術手冊投影片第 12 章  - 通用API
Java SE 7 技術手冊投影片第 12 章 - 通用APIJustin Lin
2.2K views126 slides
Java SE 7 技術手冊投影片第 05 章 - 物件封裝 by
Java SE 7 技術手冊投影片第 05 章  - 物件封裝Java SE 7 技術手冊投影片第 05 章  - 物件封裝
Java SE 7 技術手冊投影片第 05 章 - 物件封裝Justin Lin
2.6K views75 slides
Java Tutorial:Learn Java in 06:00:00 by
Java Tutorial:Learn Java in 06:00:00Java Tutorial:Learn Java in 06:00:00
Java Tutorial:Learn Java in 06:00:00Justin Lin
27.5K views98 slides
Java SE 7 技術手冊投影片第 15 章 - 反射器與類別載入器 by
Java SE 7 技術手冊投影片第 15 章 - 反射器與類別載入器Java SE 7 技術手冊投影片第 15 章 - 反射器與類別載入器
Java SE 7 技術手冊投影片第 15 章 - 反射器與類別載入器Justin Lin
1.9K views48 slides
Java SE 8 技術手冊第 14 章 - NIO 與 NIO2 by
Java SE 8 技術手冊第 14 章 - NIO 與 NIO2Java SE 8 技術手冊第 14 章 - NIO 與 NIO2
Java SE 8 技術手冊第 14 章 - NIO 與 NIO2Justin Lin
5.6K views66 slides
Ch07 使用 JSTL by
Ch07 使用 JSTLCh07 使用 JSTL
Ch07 使用 JSTLJustin Lin
161 views74 slides

What's hot(20)

Java SE 7 技術手冊投影片第 12 章 - 通用API by Justin Lin
Java SE 7 技術手冊投影片第 12 章  - 通用APIJava SE 7 技術手冊投影片第 12 章  - 通用API
Java SE 7 技術手冊投影片第 12 章 - 通用API
Justin Lin2.2K views
Java SE 7 技術手冊投影片第 05 章 - 物件封裝 by Justin Lin
Java SE 7 技術手冊投影片第 05 章  - 物件封裝Java SE 7 技術手冊投影片第 05 章  - 物件封裝
Java SE 7 技術手冊投影片第 05 章 - 物件封裝
Justin Lin2.6K views
Java Tutorial:Learn Java in 06:00:00 by Justin Lin
Java Tutorial:Learn Java in 06:00:00Java Tutorial:Learn Java in 06:00:00
Java Tutorial:Learn Java in 06:00:00
Justin Lin27.5K views
Java SE 7 技術手冊投影片第 15 章 - 反射器與類別載入器 by Justin Lin
Java SE 7 技術手冊投影片第 15 章 - 反射器與類別載入器Java SE 7 技術手冊投影片第 15 章 - 反射器與類別載入器
Java SE 7 技術手冊投影片第 15 章 - 反射器與類別載入器
Justin Lin1.9K views
Java SE 8 技術手冊第 14 章 - NIO 與 NIO2 by Justin Lin
Java SE 8 技術手冊第 14 章 - NIO 與 NIO2Java SE 8 技術手冊第 14 章 - NIO 與 NIO2
Java SE 8 技術手冊第 14 章 - NIO 與 NIO2
Justin Lin5.6K views
Ch07 使用 JSTL by Justin Lin
Ch07 使用 JSTLCh07 使用 JSTL
Ch07 使用 JSTL
Justin Lin161 views
Java SE 8 技術手冊第 17 章 - 反射與類別載入器 by Justin Lin
Java SE 8 技術手冊第 17 章 - 反射與類別載入器Java SE 8 技術手冊第 17 章 - 反射與類別載入器
Java SE 8 技術手冊第 17 章 - 反射與類別載入器
Justin Lin2.3K views
CH17:反射與類別載入器 by Justin Lin
CH17:反射與類別載入器CH17:反射與類別載入器
CH17:反射與類別載入器
Justin Lin280 views
CH16:整合資料庫 by Justin Lin
CH16:整合資料庫CH16:整合資料庫
CH16:整合資料庫
Justin Lin359 views
Java SE 7 技術手冊投影片第 01 章 - Java平台概論 by Justin Lin
Java SE 7 技術手冊投影片第 01 章 - Java平台概論Java SE 7 技術手冊投影片第 01 章 - Java平台概論
Java SE 7 技術手冊投影片第 01 章 - Java平台概論
Justin Lin5.9K views
Java SE 8 技術手冊第 5 章 - 物件封裝 by Justin Lin
Java SE 8 技術手冊第 5 章 - 物件封裝Java SE 8 技術手冊第 5 章 - 物件封裝
Java SE 8 技術手冊第 5 章 - 物件封裝
Justin Lin3.4K views
Java SE 8 技術手冊第 15 章 - 通用API by Justin Lin
Java SE 8 技術手冊第 15 章 - 通用APIJava SE 8 技術手冊第 15 章 - 通用API
Java SE 8 技術手冊第 15 章 - 通用API
Justin Lin2.2K views
Java平台概論 by Justin Lin
Java平台概論Java平台概論
Java平台概論
Justin Lin2.4K views
Java SE 8 技術手冊第 16 章 - 整合資料庫 by Justin Lin
Java SE 8 技術手冊第 16 章 - 整合資料庫Java SE 8 技術手冊第 16 章 - 整合資料庫
Java SE 8 技術手冊第 16 章 - 整合資料庫
Justin Lin2.9K views
Coreseek/Sphinx 全文检索实践指南 by HonestQiao
Coreseek/Sphinx 全文检索实践指南Coreseek/Sphinx 全文检索实践指南
Coreseek/Sphinx 全文检索实践指南
HonestQiao1.1K views
Java SE 7 技術手冊投影片第 11 章 - 執行緒與並行API by Justin Lin
Java SE 7 技術手冊投影片第 11 章 - 執行緒與並行APIJava SE 7 技術手冊投影片第 11 章 - 執行緒與並行API
Java SE 7 技術手冊投影片第 11 章 - 執行緒與並行API
Justin Lin3.1K views
CH19:深入模組化 by Justin Lin
CH19:深入模組化CH19:深入模組化
CH19:深入模組化
Justin Lin791 views
深入模組化 by Justin Lin
深入模組化深入模組化
深入模組化
Justin Lin1K views
Java SE 8 技術手冊第 4 章 - 認識物件 by Justin Lin
Java SE 8 技術手冊第 4 章 - 認識物件Java SE 8 技術手冊第 4 章 - 認識物件
Java SE 8 技術手冊第 4 章 - 認識物件
Justin Lin4.2K views
CH11:執行緒與並行API by Justin Lin
CH11:執行緒與並行APICH11:執行緒與並行API
CH11:執行緒與並行API
Justin Lin320 views

Similar to 從JDK到IDE

Java类加载器 by
Java类加载器Java类加载器
Java类加载器Fu Cheng
1K views24 slides
如何在 Java App 中導入 Scala by
如何在 Java App 中導入 Scala如何在 Java App 中導入 Scala
如何在 Java App 中導入 Scalajavatwo2011
1.4K views82 slides
千呼萬喚始出來的 Java SE 7 by
千呼萬喚始出來的 Java SE 7千呼萬喚始出來的 Java SE 7
千呼萬喚始出來的 Java SE 7Justin Lin
1.9K views103 slides
給你一個使用 Laravel 的理由 by
給你一個使用 Laravel 的理由給你一個使用 Laravel 的理由
給你一個使用 Laravel 的理由Shengyou Fan
7.9K views66 slides
2. java introduction by
2. java introduction2. java introduction
2. java introductionnetdbncku
1.4K views115 slides
Java Jdk6学习笔记[Ppt] by
Java Jdk6学习笔记[Ppt]Java Jdk6学习笔记[Ppt]
Java Jdk6学习笔记[Ppt]yiditushe
1.4K views619 slides

Similar to 從JDK到IDE(9)

Java类加载器 by Fu Cheng
Java类加载器Java类加载器
Java类加载器
Fu Cheng1K views
如何在 Java App 中導入 Scala by javatwo2011
如何在 Java App 中導入 Scala如何在 Java App 中導入 Scala
如何在 Java App 中導入 Scala
javatwo20111.4K views
千呼萬喚始出來的 Java SE 7 by Justin Lin
千呼萬喚始出來的 Java SE 7千呼萬喚始出來的 Java SE 7
千呼萬喚始出來的 Java SE 7
Justin Lin1.9K views
給你一個使用 Laravel 的理由 by Shengyou Fan
給你一個使用 Laravel 的理由給你一個使用 Laravel 的理由
給你一個使用 Laravel 的理由
Shengyou Fan7.9K views
2. java introduction by netdbncku
2. java introduction2. java introduction
2. java introduction
netdbncku1.4K views
Java Jdk6学习笔记[Ppt] by yiditushe
Java Jdk6学习笔记[Ppt]Java Jdk6学习笔记[Ppt]
Java Jdk6学习笔记[Ppt]
yiditushe1.4K views
專案啟動與環境設定 by Shengyou Fan
專案啟動與環境設定專案啟動與環境設定
專案啟動與環境設定
Shengyou Fan9K views
Java 推荐读物 by yiditushe
Java 推荐读物Java 推荐读物
Java 推荐读物
yiditushe212 views

More from Justin Lin

Ch14 簡介 Spring Boot by
Ch14 簡介 Spring BootCh14 簡介 Spring Boot
Ch14 簡介 Spring BootJustin Lin
872 views22 slides
Ch13 整合 Spring MVC/Security by
Ch13 整合 Spring MVC/SecurityCh13 整合 Spring MVC/Security
Ch13 整合 Spring MVC/SecurityJustin Lin
280 views58 slides
Ch12 Spring 起步走 by
Ch12 Spring 起步走Ch12 Spring 起步走
Ch12 Spring 起步走Justin Lin
274 views31 slides
Ch11 簡介 JavaMail by
Ch11 簡介 JavaMailCh11 簡介 JavaMail
Ch11 簡介 JavaMailJustin Lin
157 views8 slides
Ch10 Web 容器安全管理 by
Ch10 Web 容器安全管理Ch10 Web 容器安全管理
Ch10 Web 容器安全管理Justin Lin
153 views30 slides
Ch09 整合資料庫 by
Ch09 整合資料庫Ch09 整合資料庫
Ch09 整合資料庫Justin Lin
233 views92 slides

More from Justin Lin(20)

Ch14 簡介 Spring Boot by Justin Lin
Ch14 簡介 Spring BootCh14 簡介 Spring Boot
Ch14 簡介 Spring Boot
Justin Lin872 views
Ch13 整合 Spring MVC/Security by Justin Lin
Ch13 整合 Spring MVC/SecurityCh13 整合 Spring MVC/Security
Ch13 整合 Spring MVC/Security
Justin Lin280 views
Ch12 Spring 起步走 by Justin Lin
Ch12 Spring 起步走Ch12 Spring 起步走
Ch12 Spring 起步走
Justin Lin274 views
Ch11 簡介 JavaMail by Justin Lin
Ch11 簡介 JavaMailCh11 簡介 JavaMail
Ch11 簡介 JavaMail
Justin Lin157 views
Ch10 Web 容器安全管理 by Justin Lin
Ch10 Web 容器安全管理Ch10 Web 容器安全管理
Ch10 Web 容器安全管理
Justin Lin153 views
Ch09 整合資料庫 by Justin Lin
Ch09 整合資料庫Ch09 整合資料庫
Ch09 整合資料庫
Justin Lin233 views
Ch08 自訂標籤 by Justin Lin
Ch08 自訂標籤Ch08 自訂標籤
Ch08 自訂標籤
Justin Lin133 views
Ch06 使用 JSP by Justin Lin
Ch06 使用 JSPCh06 使用 JSP
Ch06 使用 JSP
Justin Lin250 views
Ch05 Servlet 進階 API、過濾器與傾聽器 by Justin Lin
Ch05 Servlet 進階 API、過濾器與傾聽器Ch05 Servlet 進階 API、過濾器與傾聽器
Ch05 Servlet 進階 API、過濾器與傾聽器
Justin Lin204 views
Ch04 會話管理 by Justin Lin
Ch04 會話管理Ch04 會話管理
Ch04 會話管理
Justin Lin238 views
Ch03 請求與回應 by Justin Lin
Ch03 請求與回應Ch03 請求與回應
Ch03 請求與回應
Justin Lin236 views
Ch02 撰寫與設定 Servlet by Justin Lin
Ch02 撰寫與設定 ServletCh02 撰寫與設定 Servlet
Ch02 撰寫與設定 Servlet
Justin Lin352 views
CH1. 簡介 Web 應用程式 by Justin Lin
CH1. 簡介 Web 應用程式CH1. 簡介 Web 應用程式
CH1. 簡介 Web 應用程式
Justin Lin1.2K views
14. 進階主題 by Justin Lin
14. 進階主題14. 進階主題
14. 進階主題
Justin Lin406 views
13.並行、平行與非同步 by Justin Lin
13.並行、平行與非同步13.並行、平行與非同步
13.並行、平行與非同步
Justin Lin237 views
12. 除錯、測試與效能 by Justin Lin
12. 除錯、測試與效能12. 除錯、測試與效能
12. 除錯、測試與效能
Justin Lin153 views
11. 常用內建模組 by Justin Lin
11. 常用內建模組11. 常用內建模組
11. 常用內建模組
Justin Lin149 views
10. 資料永續與交換 by Justin Lin
10. 資料永續與交換10. 資料永續與交換
10. 資料永續與交換
Justin Lin156 views
9. 資料結構 by Justin Lin
9. 資料結構9. 資料結構
9. 資料結構
Justin Lin292 views
8. open() 與 io 模組 by Justin Lin
8. open() 與 io 模組8. open() 與 io 模組
8. open() 與 io 模組
Justin Lin245 views

從JDK到IDE