Sự khác biệt giữa JDK và Java SDK


85

Có sự khác biệt đáng kể nào giữa hai thuật ngữ đó không ?. Tôi hiểu rằng JDK là viết tắt của Java Development Kit, là một tập hợp con của SDK (Software Development Kit). Nhưng chỉ định Java SDK, nó phải có nghĩa giống như JDK.

Câu trả lời:


97

Từ mục nhập wikipedia này :

JDK là một tập hợp con của những gì được định nghĩa lỏng lẻo như một bộ phát triển phần mềm (SDK) theo nghĩa chung. Trong phần mô tả đi kèm với các bản phát hành gần đây cho Java SE, EE và ME, Sun thừa nhận rằng theo thuật ngữ của họ, JDK tạo thành tập con của SDK chịu trách nhiệm viết và chạy các chương trình Java. Phần còn lại của SDK bao gồm phần mềm bổ sung, chẳng hạn như Máy chủ ứng dụng, Trình gỡ lỗi và Tài liệu.

"Phần mềm bổ sung" dường như là Glassfish, MySQL và NetBeans. Trang này cung cấp so sánh các gói khác nhau mà bạn có thể nhận được cho Java EE SDK.


SDK có chứa (!) Trong gói của nó - "gói" JDK không?
Royi Namir

JRE được chứa trong JDK, vâng. JDK là một bộ công cụ phát triển phần mềm (SDK).
jamesh

33

Có, có sự khác biệt giữa SDK và JDK. Hầu hết mọi người đều quên rằng Nền tảng Java không chỉ được sử dụng để phát triển các chương trình bằng ngôn ngữ Java. JVM cũng hỗ trợ một số ngôn ngữ khác. Do đó, làm rõ ràng, SDK là gói phần mềm chung hỗ trợ tạo phần mềm bằng nhiều ngôn ngữ khác nhau như Clojure, Groovy, Scala, JRuby và các ngôn ngữ khác. JDK là gói cụ thể để phát triển phần mềm bằng ngôn ngữ Java, chứa tất cả API chuẩn Java để làm như vậy. (Tôi hy vọng tôi đã giải thích nó tốt, vì tôi thực sự không nói tiếng Anh)


26

JDK là SDK cho Java.

SDK là viết tắt của 'Software Development Kit', một công cụ dành cho nhà phát triển cho phép người dùng viết mã dễ dàng, hiệu quả và hiệu quả hơn. SDK có nhiều ngôn ngữ khác nhau. Họ cung cấp rất nhiều API (Giao diện lập trình ứng dụng) giúp công việc của lập trình viên trở nên dễ dàng.

nhập mô tả hình ảnh ở đây

SDK cho Java được gọi là JDK, Bộ phát triển Java. Vì vậy, bằng cách nói SDK cho Java, bạn thực sự đang đề cập đến JDK.

Giả sử rằng bạn chưa quen với Java, có một thuật ngữ khác mà bạn sẽ bắt gặp - JRE, từ viết tắt của Java Runtime Environment. JRE là thứ bạn cần khi cố gắng chạy các chương trình phần mềm được viết bằng Java.

Java là một ngôn ngữ độc lập với nền tảng. JRE chạy JVM, Máy ảo Java, cho phép bạn chạy phần mềm trên bất kỳ nền tảng nào có sẵn JVM.


1
Vui lòng làm rõ JRE phù hợp với sơ đồ của bạn ở đâu?
vikramvi

JRE có sẵn bên trong JDK hoặc nó có thể là một độc lập tùy thuộc vào những gì bạn đang làm. Đó là thời gian chạy, vì vậy khi bạn đang xây dựng một ứng dụng, nó nằm bên trong JDK nhưng khi bạn chỉ đang chạy ứng dụng, nó đứng riêng trong trường hợp đó, sơ đồ này không có nhiều ý nghĩa.
raj240 11/09/19

Bạn có chắc jdk là sdk của java? Xem xét java se, điều đó có thể đúng nhưng đối với java ee và java me, tôi chỉ thấy SDK do Oracle cung cấp. Vì vậy, bạn có thực sự chắc chắn về điều đó?
user12208242

hình ảnh đang nói chuyện với tôi :)
noyan

5

Được lấy từ Trình cài đặt Java EE 6 SDK, hiển thị SDK 6 chứa những gì bên cạnh JDK:

SDK 6 chứa những gì, ngoài JDK


3

Sun chỉ thích thay đổi tên của mọi thứ mà không có lý do rõ ràng. Nhìn vào ba sơ đồ đánh số khác nhau cho SunOS / Solaris hoặc hai lược đồ đánh số cho Java. Là Java 1.6, Java 2 Phiên bản 6 hay Java 6?


3

JDK (Java Development Kit) là một SDK (Software Dev Kit).

Nó được sử dụng để xây dựng phần mềm / ứng dụng trên Java và tất nhiên nó bao gồm JRE (Java Runtime Edition) để thực thi phần mềm đó. Nếu bạn chỉ muốn thực thi một ứng dụng Java, chỉ tải xuống JRE.

Nhân tiện, Java EE (Enterprise Edition) chứa thư viện các gói lớp "với các phương thức (chức năng)" để xây dựng ứng dụng cho môi trường WEB và Java ME (Micro Edition) cho thiết bị di động. Nếu bạn quan tâm đến nó (Java ME), tôi khuyên bạn nên xem qua Android DevKit và API của Google.

Hãy xem ở đây: nó sẽ giải thích thêm một chút .. http://www.oracle.com/technetwork/java/archive-139210.html


2

JDK đi kèm với một bộ sưu tập các công cụ được sử dụng để phát triển và chạy các chương trình Java ,

Chúng bao gồm:

  1. appletviewer (để xem các applet Java)

  2. javac (trình biên dịch Java)

  3. java (trình thông dịch Java)

  4. javap (trình tháo gỡ Java)

  5. javah (dành cho tệp tiêu đề C)

  6. javadoc (để tạo tài liệu HTML)

  7. jdb (trình gỡ lỗi Java)

Trong khi đó, SDK đi kèm với nhiều công cụ khác, bao gồm cả các công cụ có sẵn trong JDK.

http://parvindersingh.webs.com/apps/forums/topics/show/8853125-solved-java-difference-between-jdk-and-sdk-


1

Không có sự khác biệt giữa JDK và Java SDK. Cả hai đều có nghĩa giống nhau. Tôi nghĩ rằng đó là một quyết định PR của Sun khi chuyển từ JDK sang Java SDK. Tôi nghĩ rằng nó quay trở lại JDK bây giờ.


1

Theo quan điểm của tôi, không có sự khác biệt giữa JDK và SDK trong java. Chúng tôi có thể tìm thấy tất cả các công cụ phát triển cũng như cơ sở vật chất ở cả hai. nó chỉ là một bí danh do sun cung cấp.


1

Ví dụ tốt nhất cho Câu hỏi này, SDK - Bộ phát triển phần mềm - Ví dụ: Netbeans JDK - Bộ phát triển Java. (Đây là trình biên dịch Java). Nếu không có JDK, chúng tôi không thể chạy các chương trình java trong SDK.


1

Không có sự khác biệt.

Bộ công cụ phát triển phần mềm Java (Java SDK) từng được gọi là Bộ công cụ phát triển Java (JDK) trước khi bộ phận tiếp thị tại Sun phát cuồng với "tm" và thuật ngữ. Vì lý do chính trị & vì sự tỉnh táo, họ gọi tên có ý nghĩa (jdk) & phiên bản (1.2 / 1.3 / 1.4 1.5 / 1.6) là thuật ngữ "kỹ thuật". Các thuật ngữ tiếp thị là "nền tảng Java2" (còn gọi là jdk 1.2 đến 1.4) hoặc Java5 (còn gọi là jdk 1.5) hoặc Java6 (còn gọi là jdk1.6). Tôi đang đau đầu khi nghĩ về nó.


0

Tôi nghĩ jdk có một số tính năng nhất định có thể được sử dụng cùng với khung cụ thể. Hay gọi nó là SDK nói chung.

Giống như Android hay Blackberry, cả hai đều sử dụng java cùng với khuôn khổ của chúng.


-1

Dự đoán ban đầu của tôi sẽ là Java SDK để xây dựng JVM trong khi JDK là để xây dựng ứng dụng cho JVM.

Chỉnh sửa: Mặc dù điều này có vẻ không chính xác vào lúc này. Sun đang trong quá trình mở nguồn cung ứng JVM (có lẽ bây giờ họ thậm chí đã hoàn thành) vì vậy tôi sẽ không quá ngạc nhiên nếu câu trả lời của tôi trở thành chính xác ... Nhưng hiện tại, SDK và JDK đều giống nhau.


Xin lỗi, ý bạn là gì khi xây dựng JVM?
Juan Carlos Blanco Martínez

Các ứng dụng Java chạy bên trong Máy ảo Java. Một phần của JRE đang được công khai, vì vậy Java SDK sẽ hữu ích cho mọi người để xây dựng JRE cho nền tảng của họ.
Oli

Xin lỗi, bạn lấy tuyên bố này từ đâu (một Java SDK sẽ hữu ích cho mọi người để xây dựng JRE cho nền tảng của họ) từ đâu? Tôi nghĩ rằng tôi không hiểu bạn hoặc đó không phải là mục tiêu của Java SDK. Java SDK được hình thành bởi các JRE và một số công cụ như Javac, javap, javadoc ...
Juan Carlos Blanco Martínez

-1

Có hai sản phẩm JavaSE và JavaEE. EE là ứng dụng web / phiên bản doanh nghiệp cho phép phát triển và chạy ứng dụng web. SE là sản phẩm Java thuần túy không có chi tiết cụ thể về EE, nhưng là một tập con của EE. SE có hai loại là JDK và JRE.

Có một sự khác biệt lớn có thể không rõ ràng và tôi không chắc liệu nó có áp dụng cho tất cả các Hệ điều hành hay không nhưng trong Windows, JRE không có máy chủ HotSpot JVM, chỉ có một máy khách, JDK có cả hai và theo như Tôi biết tất cả các hệ điều hành khác đều có cả JDK và JRE. Sự khác biệt thực sự là JDK chứa trình biên dịch Java, đó là JDK cho phép bạn biên dịch và chạy Java từ mã nguồn trong đó JRE chỉ cho phép chạy mã byte Java, đó là Nguồn đã được biên dịch. Và có các phiên bản mới hơn bao gồm một số thành phần bổ sung, chẳng hạn như môi trường biên tập NetBeans và Java trong Cơ sở dữ liệu bộ nhớ (derby / cloudcape), nhưng đây là tùy chọn.

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.