顯示具有 jdk 標籤的文章。 顯示所有文章
顯示具有 jdk 標籤的文章。 顯示所有文章

Version history of Java EE, JPA, Java DB, JavaFX, and JDK

下表為 Java 平台企業版 (EE, Enterprise Edition) 各種開發工具的版本歷史。資料來自網路,可看出從昇陽公司的 J2EE、甲骨文公司的 Java EE,到 Eclipse基金會的 Jakarta EE,EE 標準的主導權不斷異動。 如果有機會拿到依據各代 Java 平台 EE 標準開發的舊程式碼,建議查找下表找出最合適的相關開發工具,以免無法進行測試。

例如,拿到使用 JavaFX 視窗介面程式,若查出其適用版本為 JavaFX 11,可參考下表得知,其合適的開發工具版本為 JavaFX 11  + JDK 11,兩者皆屬 LTS 長期支援版本,較容易找到安裝檔。

Year EE Standard JPA Java DB JavaFX JDK
1999J2EE 1.2
2000
J2SE 1.3
2001J2EE 1.3
2002
J2SE 1.4
2003J2EE 1.4
2004

J2SE 5 (1.5)
2005Java DB 10.1
2006Java EE 5JPA 1.0Java DB 10.2J2SE 6 (1.6)
2007
2008Java DB 10.3, 10.4JavaFX 1.0.2
2009Java EE 6JPA 2.0Java DB 10.5JavaFX 1.1, 1.2
2010Java DB 10.6JavaFX 1.3
2011
JavaFX 2.0J2SE 7 (1.7)
2012JavaFX 2.2
2013Java EE 7JPA 2.1Java DB 10.10
2014Java DB 10.11JavaFX 8J2SE 8 (1.8), LTS
2015Java DB 10.12
2016Java DB 10.13
2017Java EE 8JPA 2.2
J2SE 9 (1.9)
2018Java DB 10.14JavaFX 11 (LTS)J2SE 10 (1.10), J2SE 11 (LTS)
2019
Java DB 10.15JavaFX 12, 13J2SE 12, 13
2020Jakarta EE 9

JavaFX 14, 15J2SE 14, 15
2021Jakarta EE 9.1JavaFX 16, 17 (LTS)J2SE 16, J2SE 17 (LTS)
2022Jakarta EE 10JPA 3.1Java DB 10.16JavaFX 18, 19J2SE 18, 19
2023Java DB 10.17JavaFX 20, 21 (LTS)J2SE 20, J2SE 21 (LTS)
2024Jakarta EE 11JavaFX 23J2SE 22, 23
2025JavaFX 24, 25J2SE 24, J2SE 25 (LTS)

以下表格摘要,由 NetBeans 測試,可和各版本 JavaFX (LTS) 相容的長期支援 JDK (LTS) 版本,供安裝參考。

Year JavaFX (LTS) Compatible JDK (LTS) Note
2018JavaFX 11 (LTS)J2SE 11, 17, 21JDK 8 不支援 JavaFX 11 模組功能
2021JavaFX 17 (LTS)J2SE 11, 17, 21
2023JavaFX 21 (LTS)J2SE 17, 21JDK 11 不支援 JavaFX 21 模組版本

註1: 網路參考來源: 以 Wikipedia 維基百科網站為主

  1. Jakarta EE
  2. JPA
  3. Apache Derby (Java DB)
  4. JavaFX
  5. Java版本歷史

how to set up the NetBeans environment for running Java EE 7 compilant JavaServer Faces with @ManagedBean annotation

若拿到使用 JavaServer Faces (JSF) 開發的套件,內含 @ManagedBean 註記,可依據附註的部落格,查出其合適的開發工具版本為 JSF 2.0 + GlassFish 3.x + JDK 6 + NetBeans 6.x 或 JSF 2.2 + GlassFish 4.x + JDK 7 + NetBeans 7.x。

若找不到JDK 6、JDK 7,支援 LTS (長期服務) 版本的 JDK 8 較好找,應該也可以。至於 NetBeans 版本似乎較不嚴苛,使用較新的 NetBeans 22 也是可以的,只是伺服器要安裝支援 Java EE 6 或 7 的 GlassFish 及 JDK 版本。其安裝步驟如下

1. 假設 NetBeans 要安裝 GlassFish 4.1.2 (內含符合Java EE 7 Web標準的JSF2.2) + JDK 8
      所須 JDK 8 如下:
        OpenJDK Zulu 8.0.442+6
        zulu8.84.0.15-ca-jdk8.0.442-win_x64.zip
        C:\Users\xx\Documents\NetBeansJDKs\zulu8.84.0.15-ca-jdk8.0.442-win_x64\

2. 開舊專案後,改伺服器選用 Java EE 7 Web 相容的 GlassFish 4.1.12
      Resolve Missing Server Problem
        Available Java EE 7 Web compatible servers:
          GlassFish Server 4
     【OK】

3. 啟動 GlassFish Server 4
      Window/Services/Servers: GlassFish Server 4
        GlassFish server couldn ot be started with JDK XX (Default).
        Please select another Java SE Platform.
        Java Platform: Zulu 8.0.442+6
     【OK】

     Windoww安全性警訊
       Windows Defender 允許 OpenJDK xxx 在這些網路上通訊:
       V 網域網路,例如工作場所網路
    【允許存取】

4. 安裝 GlassFish 4.1.2 步驟
    Tools/Servers:
       Add Server...
         Choose Server
           Server: GlassFish Server
           Name: GlassFish Server 4
       Next>
         Server Location
           Installation Location: C:\Users\xx\GlassFish_server4
           X Local Domain
           Choose server to download:
             GlassFish Server 4.1.2
             V I have read and accept the licence agreement...(click)
             Download Now... (104.2m)
       Next>
         Domain Location
           Domain: domain1
           Host: localhost, Vloopback
           DAS Port: 4848, HTTP Port: 8080, VDefault
           Target:
           User Name:
           Password:
      【Finish】
    

        Server Name: GlassFish Server 4
        Server Type: GlassFish Server 4.1.2
        Common:
          Installation Location: C:\Users\xx\GlassFish_server4\glassfish
          Domains Folder: C:\Users\xx\GlassFish_server4\glassfish\domains
          Host: localhost
          DAS Port: 484, HTTP Port:8080
          Domain: domain1
            Enable HTTP Monitor (維持不打勾)
          V Enable JDBC Driver Deployment
          V Preserve Sessions Across Redeployment
          V Start Registered Derby Server
      【Close】

5. 安裝  JDK 8 方法
    Tools/Java Platforms
      Add Platform...
        Select platform type
          Download OpenJDK (via Foojay.io Disco API)
        Connect to OpenJDK Discovery Service
          Quick:
            Version: 23,21,17,11,8
            Distribution: Microsoft or Zulu

附註: 有關於 Java 平台企業版各種開發工具的歷史相容關係,可參考如下說明:
    Blog: Version history of Java EE,  JSF, GlassFish, JDK, and NetBeans

Version history of Java EE, JSF, GlassFish, JDK, and NetBeans

下表為 Java 平台企業版 (EE, Enterprise Edition) 各種開發工具的版本歷史。資料來自網路,可看出從昇陽公司的 J2EE、甲骨文公司的 Java EE,到 Eclipse基金會的 Jakarta EE,EE 標準的主導權不斷異動。 如果有機會拿到依據各代 Java 平台 EE 標準開發的舊程式碼,建議查找下表找出最合適的相關開發工具,以免無法進行測試。

例如,若拿到使用 JavaServer Faces (JSF) 開發的套件,內含 @ManagedBean 註記,可先查出其適用版本為 Java EE 6 或 Java EE 7。接著,參考下表得知,其合適的開發工具版本為 JSF 2.0 + GlassFish 3.x + JDK 6 + NetBeans 6.x 或 JSF 2.2 + GlassFish 4.x + JDK 7 + NetBeans 7.x。

其中,Java 開發套件 (Java Development Kit),簡稱 JDK,也歷經多代更迭。若找不到 JDK 6、JDK 7,支援 LTS (長期服務) 版本的 JDK 8 較好找,應該也可以。至於 NetBeans 版本的要求較不嚴苛,使用較新的 NetBeans 22 也是可以的,只是伺服器要安裝支援 Java EE 6 或 7 的 GlassFish 及 JDK 版本。

Year EE Standard JSF/Jakarta GlassFish JDK NetBeans
1999J2EE 1.2
2000J2SE 1.3
2001J2EE 1.3
2002J2SE 1.4
2003J2EE 1.4
2004JSF 1.0,1.1J2SE 5 (1.5)NetBeans 4.0
2005
2006Java EE 5JSF 1.2J2SE 6 (1.6)NetBeans 5.0
2007NetBeans 6.0
2008
2009Java EE 6JSF 2.0GlassFish 3.0
2010
2011J2SE 7 (1.7)NetBeans 7.0
2012
2013Java EE 7JSF 2.2GlassFish 4.0
2014J2SE 8 (1.8), LTSNetBeans 8.0
2015
2016
2017Java EE 8JSF 2.3J2SE 9 (1.9)
2018J2SE 10 (1.10), J2SE 11 (LTS)NetBeans 9.0, 10.0
2019Jakarta 2.3GlassFish 5.0J2SE 12, 13NetBeans 11.0
2020Jakarta EE 9Jakarta 3.0GlassFish 6.0J2SE 14, 15NetBeans 12.0
2021Jakarta EE 9.1J2SE 16, J2SE 17 (LTS)
2022Jakarta EE 10Jakarta 4.0GlassFish 7.0J2SE 18, 19NetBeans 13, 14, 15, 16
2023J2SE 20, J2SE 21 (LTS)NetBeans 17, 18, 19, 20
2024Jakarta EE 11J2SE 22, 23NetBeans 21, 22, 23, 24
2025J2SE 24, J2SE 25 (LTS)NetBeans 25, 26, 27, 28

以下表格摘要,由 NetBeans 測試,列出可和各版本 GlassFish 相容的長期支援 JDK (LTS) 版本,供安裝參考。

Year EE Standard JSF/Jakarta GlassFish Compatible JDK (LTS) Note
2009Java EE 6JSF 2.0GlassFish 3.0JDK 8
2013Java EE 7JSF 2.2GlassFish 4.0JDK 8支援 @ManagedBean 標註的最高版本組合
2019Java EE 8Jakarta 2.3GlassFish 5.0JDK 8@ManagedBean 廢止,改用環境及相依注入(CDI) 的 @Named 標註
2020Jakarta EE 9Jakarta 3.0GlassFish 6.0JDK 11, 17
2022Jakarta EE 10Jakarta 4.0GlassFish 7.0JDK 11, 17, 21

註1: Java EE 6,7 支援的 @ManagedBean 寫法,可參考如下要點,改成 Jakarta EE 支援的 @Named 註記。


  // 原來 Java EE 6,7 寫法
  import javax.faces.bean.ManagedBean;

  @ManagedBean(name="webBean")
  public class MyWebBean
  
  // 改成 Jakarta EE 寫法

  import jakarta.inject.Named;
  import jakarta.enterprise.context.SessionScoped;
  import java.io.Serializable;

  @Named("webBean")
  @SessionScoped
  public class MyWebBean implements Serializable

註2: 網路參考來源: 以 Wikipedia 維基百科網站為主

  1. Jakarta EE
  2. JavaServer Faces
  3. GlassFish
  4. Java版本歷史
  5. NetBeans
  6. NetBeans Release Schedule

Building a Lightweight Streamlit Client for Local Ollama LLM Interaction

Ollama 提供端點串接服務,可由程式管理及使用本地大語言模型(LLM, Large Language Model)。 以下程式碼展示如何以 Streamlit 套件,建立一個輕量級的網頁介面,供呼叫 本地端安裝的 Ollama 大語言模型。 Ollama 預設的服務...

總網頁瀏覽量