Java SE 6 so với JRE 1.6 so với JDK 1.6 - Chúng có nghĩa là gì?


178

Tôi thấy nhiều thuật ngữ Java khác nhau trôi nổi xung quanh. Tôi cần cài đặt JDK 1.6. Theo hiểu biết của tôi thì Java 6 == Java 1.6. Tuy nhiên, khi tôi cài đặt Java SE 6, tôi nhận được một JVM báo cáo là phiên bản 11.0! Ai có thể giải quyết sự điên rồ?


12
Có một Sơ đồ khái niệm Java đẹp (với các liên kết có thể nhấp) cũng có thể giúp ích.
informatik01

Câu trả lời:


55

Khi bạn nhập "java -version", bạn sẽ thấy ba số phiên bản - phiên bản java (trên của tôi, đó là " 1.6.0_07"), phiên bản Môi trường thời gian chạy Java SE ("xây dựng 1.6.0_07-b06") và phiên bản HotSpot (trên của tôi, đó là " build 10.0-b23, mixed mode") . Tôi nghi ngờ "11.0" bạn đang thấy là phiên bản HotSpot.

Cập nhật: HotSpot là (hoặc trước đây, giờ đây dường như họ sử dụng nó để có nghĩa là toàn bộ VM) trình biên dịch đúng lúc được tích hợp vào Máy ảo Java. Chúa chỉ biết tại sao Sun cho nó một số phiên bản riêng.


7
Vậy, sự khác biệt giữa JVM 1.6 và JVM 11.0 là gì? Điểm nóng là gì?
Joe Schneider

Cảm ơn, đó là sự nhầm lẫn - hai số phiên bản khác nhau.
Joe Schneider

1
Thật ra HotSpot không phải là JIT. JIT ngụ ý rằng việc biên dịch diễn ra trước khi thực hiện. Trước tiên, HotSpot sử dụng giao diện để thực thi và phân tích mã trước khi biên dịch / tối ưu hóa các phần được chọn của chương trình.
John Nilsson

173
  • JDK - Bộ công cụ phát triển Java
  • JRE - Môi trường chạy thi hành Java
  • Java SE - Phiên bản tiêu chuẩn Java

SE định nghĩa một tập hợp các khả năng và chức năng; có các phiên bản phức tạp hơn (Phiên bản doanh nghiệp - EE) và phiên bản đơn giản hơn (Phiên bản Micro - ME - cho môi trường di động).

JDK bao gồm trình biên dịch và các công cụ khác cần thiết để phát triển các ứng dụng Java; JRE thì không. Vì vậy, để chạy một ứng dụng Java do người khác cung cấp, bạn cần JRE; để phát triển một ứng dụng Java, bạn cần JDK.

Đã chỉnh sửa : Như Chris Marasti-Georg đã chỉ ra trong một nhận xét, bạn có thể tìm hiểu nhiều thông tin tại trang web Java của Sun và đặc biệt từ phần Java SE , (tùy chọn thứ 2, Bộ công cụ phát triển Java SE (JDK) 6 Cập nhật 10) .


Đã chỉnh sửa 2011-04-06: Thế giới xoay chuyển và Java hiện được quản lý bởi Oracle, công ty đã mua Sun. Cuối năm nay, sun.commiền được cho là tối. Trang mới (dựa trên chuyển hướng) là trang Java này tại Mạng công nghệ Oracle. (Xem thêm java.com .)


Đã chỉnh sửa 2013-01-11: Và thế giới vẫn tiếp tục (mặc dù 2012-12-21), và lo và kìa, JRE 6 sắp sửa đạt đến sự hỗ trợ. Oracle cho biết không còn cập nhật công khai nào cho Java 6 sau tháng 2 năm 2013.

Trong một phiên bản nhất định của Java, câu trả lời này vẫn còn hiệu lực. JDK là Bộ công cụ phát triển Java, JRE là Môi trường chạy thi hành Java, Java SE là phiên bản tiêu chuẩn, v.v. Nhưng phiên bản 6 (1.6) đang trở nên lỗi thời.

Đã chỉnh sửa 2015-04-29: Và với một vài cuộc cách mạng khác trên mặt trời, đã đến lúc kết thúc hỗ trợ cho Java SE 7. Vào tháng 4 năm 2015, Oracle đã xác nhận rằng họ không còn cung cấp các bản cập nhật công khai cho Java SE 7. Kết thúc dự kiến ​​của các bản cập nhật công khai cho Java SE 8 là tháng 3 năm 2017, nhưng ngày kết thúc có thể thay đổi (sau đó, không sớm hơn).


1
Vậy, nếu tôi cần JDK 1.6, tôi phải cài đặt cái gì? Cài đặt Java SE 6 cung cấp cho tôi một JVM báo cáo là phiên bản 11.0!
Joe Schneider

1
Bạn cần phải đi đến mặt trời và tải xuống JDK 1.6 hoặc 6, bất cứ điều gì họ có nó được liệt kê là.
Chris Marasti-Georg

Tôi tin rằng những gì đi kèm với Java SE 6 phải là JDK chính xác, mặc dù có sự khác biệt về số phiên bản bên trong.
Jonathan Leffler

java.sun.com/javase/doads/index.jsp Tùy chọn thứ 2, Bộ công cụ phát triển Java SE (JDK) 6 Cập nhật 10
Chris Marasti-Georg

1
@Pacerier: điều đó có đúng vào tháng 10 năm 2008 không? Ngoài ra, thành phần nguyên tắc của JDK là trình biên dịch Java, phải không?
Jonathan Leffler

103

Điều này có thể giúp ai đó:

Tôi đang cài đặt Java mới nhất trên hệ thống của mình để phát triển và hiện tại là Java SE 7. Bây giờ, hãy đi sâu vào "sự điên rồ" này, khi bạn đặt nó ...

Tất cả những thứ này đều giống nhau (khi các nhà phát triển đang nói về Java để phát triển):

  • Java SE 7
  • Java SE v1.7.0
  • Bộ công cụ phát triển Java SE 7

Bắt đầu với Java v1.5:

  • v5 = v1.5.
  • v6 = v1.6.
  • v7 = v1.7.

Và chúng ta có thể giả định rằng điều này sẽ vẫn còn cho các phiên bản trong tương lai.

Tiếp theo, đối với các nhà phát triển, tải xuống JDK, không phải JRE.

JDK sẽ chứa JRE. Nếu bạn cần JDK và JRE, hãy lấy JDK. Cả hai sẽ được cài đặt từ bản cài đặt JDK duy nhất, như bạn sẽ thấy bên dưới.

Như ai đó đã đề cập ở trên:

  • JDK = Java Development Kit (nhà phát triển cần cái này, đây là bạn nếu bạn viết mã bằng Java)
  • JRE = Môi trường chạy thi hành Java (người dùng cần điều này, đây là mọi người dùng máy tính hiện nay)
  • Java SE = Phiên bản tiêu chuẩn Java

Đây là các liên kết từng bước tôi đã theo dõi (một bước dẫn đến bước tiếp theo, đây là tất cả cho một lần tải xuống) để tải xuống Java để phát triển (JDK):

  1. Truy cập "Tải xuống Java SE": http://www.oracle.com/technetwork/java/javase/doads/index.html
  2. Nhấp vào "Tải xuống JDK" và truy cập "Tải xuống Bộ công cụ phát triển Java SE 7": http://www.oracle.com/technetwork/java/javase/doads/java-se-jdk-7-doad-432154.html (lưu ý rằng theo liên kết từ bước 1 sẽ đưa bạn đến một liên kết khác như các bản cập nhật JDK 1.7, các phiên bản mới hơn, hiện đã ra)
  3. Chấp nhận thỏa thuận :)
  4. Nhấp vào "Bộ công cụ phát triển Java SE 7 (Windows x64)": http://doad.oracle.com/otn-pub/java/jdk/7/jdk-7-windows-x64.exe (cho Windows 7 64 bit của tôi hệ thống)
  5. Bây giờ bạn đang tải xuống (hy vọng là bản mới nhất) JDK cho hệ thống của bạn! :)

Hãy ghi nhớ các liên kết trên chỉ dành cho mục đích tham khảo, để cho bạn thấy phương pháp từng bước về những gì nó cần để tải xuống JDK.

Và cài đặt với các thiết lập mặc định để:

  • Căng C: \ Tệp chương trình \ Java \ jdk1.7.0 \ '(JDK)
  • C trên C: \ Tệp chương trình \ Java \ jre7 \ '(JRE) <--- tại sao nó lại yêu cầu một thư mục cài đặt mới? đó là JRE!

Hãy nhớ từ trên rằng JDK chứa JRE, điều này có ý nghĩa nếu bạn biết cả hai đều là gì. Một lần nữa, xem ở trên.

Sau khi cài đặt, hãy kiểm tra kỹ các ứng dụng C: \ Program Files \ Java để xem cả hai thư mục này. Bây giờ bạn biết những gì họ đang có và tại sao họ ở đó.

Tôi biết tôi đã viết bài này cho người mới, nhưng tôi thích biết mọi thứ một cách chi tiết, vì vậy tôi hy vọng điều này sẽ giúp ích.


8
câu trả lời này cần phải được trả lời :)
fchen

Gần đây tôi đã phải cài đặt một jre để chạy một trong các trình cài đặt khác và sau đó phải cài đặt phiên bản 32 bit để có một trình cài đặt khác hoạt động. Phiên bản tôi đang sử dụng ở cuối đó là Glassfish 4 dường như vẫn chưa cung cấp javax.persistence. Sau đó nó bật ra tôi cần maven, mà bạn giải nén và sau đó đặt một số biến môi trường. Thật là một mớ hỗn độn!
JonnyRaa

Dường như với tôi rằng Java SE và Java SDK là một và cùng một gói.
galmok

20

Lịch sử tóm tắt và có thể không chính xác của các phiên bản Java

  • Java là một nền tảng. Nó bao gồm hai sản phẩm - bộ phát triển phần mềm và môi trường thời gian chạy.

  • Khi Java được phát hành lần đầu tiên, rõ ràng nó chỉ được gọi là Java . Nếu bạn là nhà phát triển, bạn cũng biết phiên bản "1.0" bình thường và sau đó là "1.1". Hai sản phẩm là một phần của nền tảng cũng được đặt tên:

    • JDK - "Bộ công cụ phát triển Java"
    • JRE - "Môi trường chạy thi hành Java"
  • Rõ ràng những thay đổi trong phiên bản 1.2 quan trọng đến mức họ bắt đầu gọi nền tảng này là Java 2 .

    • "Phân phối" mặc định của nền tảng đã được đưa ra "tiêu chuẩn" biệt danh để tương phản với anh chị em của nó. Vì vậy, bạn đã có ba nền tảng:

      • "Phiên bản tiêu chuẩn Java 2 (J2SE)"
      • "Phiên bản doanh nghiệp Java 2 (J2EE)"
      • "Phiên bản di động Java 2 (J2ME)"
    • JDK đã chính thức được đổi tên thành "Bộ công cụ phát triển phần mềm Java 2".

  • Khi phiên bản 1.5 xuất hiện, các bộ quần áo đã quyết định rằng họ cần "đổi thương hiệu" cho sản phẩm. Vì vậy, nền tảng Java có hai phiên bản - phiên bản sản phẩm "5" và phiên bản dành cho nhà phát triển "1.5" (Có, quy tắc được đề cập rõ ràng - "thả" 1. "). Tuy nhiên," 2 "vẫn được giữ lại trong tên. Vì vậy, bây giờ nền tảng này được chính thức gọi là "Java 2 Platform Standard Edition 5.0 (J2SE 5.0)" .

    • Các vụ kiện cũng nhận ra rằng cộng đồng phát triển đã không chọn đổi tên JDK của họ. Nhưng thay vì hoàn nguyên thay đổi của mình, họ chỉ quyết định bỏ "2" khỏi tên của các sản phẩm riêng lẻ, giờ đây sẽ là "J2SE Development Kit 5.0 (JDK 5.0)""J2SE Runtime Môi trường 5.0 (JRE 5.0)" .
  • Khi phiên bản 1.6 xuất hiện, ai đó nhận ra rằng có hai số trong tên thật kỳ lạ. Vì vậy, họ quyết định bỏ hoàn toàn 2 (và hậu tố ".0") và chúng tôi kết thúc với "Nền tảng Java, Phiên bản chuẩn 6 (Java SE 6)" có chứa "Bộ công cụ phát triển Java SE 6 (JDK 6)""Môi trường thời gian chạy Java SE 6 (JRE 6)" .

  • Phiên bản 1.7 không làm gì ngu ngốc. Nếu tôi phải đoán, thay đổi lớn tiếp theo sẽ là bỏ "SE", để chu trình hoàn thành và JDK lại được gọi là "Bộ công cụ phát triển Java".

Ghi chú

  • Để đơn giản, một loạt các dấu hiệu thương hiệu đã được bỏ qua. Vì vậy, giả sử Java ™, JDK ™ và JRE ™.

  • SO dường như có vấn đề kết xuất danh sách lồng nhau.

Người giới thiệu

Phần kết

Chỉ cần thả "1." từ các phiên bản được in javac -versionjava -versionvà bạn tốt để đi.


3
Bò thần. Tôi nghĩ chỉ có Microsoft mới có những người vô gia cư điên rồ tạo nên tên sản phẩm.
Stablesog

2
Thật là điên rồ. Tôi chưa bao giờ có thể hiểu những điều này mà không cần phải tìm kiếm chúng rõ ràng mỗi lần.
Tăng trước

4

Với việc phát hành Java 5, phiên bản sản phẩm đã được tạo ra khác biệt với phiên bản dành cho nhà phát triển như được mô tả ở đây


3

Java SE Runtime dành cho người dùng cuối, vì vậy bạn cần phiên bản Java JRE, phiên bản đầu tiên của Java là 1, sau đó 1.1 - 1.2 - 1.3 - 1.4 - 1.5 - 1.6, v.v. và thông thường mỗi phiên bản được đặt tên theo phiên bản nên JRE 6 có nghĩa là Java jre 1.6, dù sao cũng có phiên bản cập nhật, ví dụ 1.6 update 45, được đặt tên là java jre 6u45.

Từ những gì tôi biết, họ thích sử dụng số 6 thay vì sử dụng 1.6 để phản ánh tốt hơn mức độ trưởng thành, ổn định, khả năng mở rộng, bảo mật và hơn thế nữa

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.