Sự khác biệt giữa JDK và JRE là gì?


926

Sự khác biệt giữa JDK và JRE là gì?

Vai trò của họ là gì và khi nào tôi nên sử dụng cái này hay cái kia?


12
Câu trả lời hay và ngắn gọn cho câu hỏi này có thể được tìm thấy tại: java.com/en/doad/faq/techinfo.xml
Akshay Lokur


5
@kenorb dựa trên dấu thời gian, câu hỏi được liên kết dường như là một bản sao của câu hỏi này.
Ungeheuer

Câu trả lời:


1223

Các JREJava Runtime Environment . Nó là một gói của tất cả mọi thứ cần thiết để chạy một chương trình Java đã biên dịch, bao gồm Máy ảo Java (JVM), Thư viện lớp Java, javalệnh và cơ sở hạ tầng khác. Tuy nhiên, nó không thể được sử dụng để tạo chương trình mới.

Các JDKJava Development Kit , SDK đầy đủ tính năng cho Java. Nó có mọi thứ mà JRE có, nhưng cũng có trình biên dịch ( javac) và các công cụ (như javadocjdb). Nó có khả năng tạo và biên dịch chương trình.

Thông thường, nếu bạn chỉ quan tâm đến việc chạy các chương trình Java trên máy tính, bạn sẽ chỉ cài đặt JRE. Đó là tất cả những gì bạn cần. Mặt khác, nếu bạn dự định thực hiện một số lập trình Java, bạn cần cài đặt JDK thay thế.

Đôi khi, ngay cả khi bạn không có kế hoạch thực hiện bất kỳ phát triển Java nào trên máy tính, bạn vẫn cần cài đặt JDK. Ví dụ, nếu bạn đang triển khai một ứng dụng web với JSP, về mặt kỹ thuật bạn chỉ đang chạy các chương trình Java bên trong máy chủ ứng dụng. Tại sao bạn lại cần JDK? Bởi vì máy chủ ứng dụng sẽ chuyển đổi JSP thành các máy chủ Java và cần sử dụng JDK để biên dịch các máy chủ. Tôi chắc chắn rằng có nhiều ví dụ.


4
Sau đó, khi chúng tôi đang sử dụng các lọ bên ngoài, chúng tôi đang triển khai các lọ đó trong jre / lib / ext / .. Vậy tại sao vậy ??
i2ijeya

2
Có một vài lọ được dự định cụ thể là các phần mở rộng của Java; những người có thể và nên được đặt trong lib / ext. Nhưng đặt bất kỳ lọ ứng dụng cũ nào không phải là mục đích của thư mục này; đó là sự lạm dụng cơ chế mở rộng và có thể gây ra sự cố sau này.
Carl Smotricz

Tôi đã làm việc với API JExcel và tôi đã đặt đường dẫn chính xác và vẫn còn tồn tại vấn đề. Vì vậy, tôi đã triển khai nó trong thư mục tlib / ext, cái nào sẽ tốt sau đó ?? Vậy lý do sẽ là gì ??
i2ijeya

3
Tôi không có thông tin để hoàn toàn chắc chắn, nhưng tôi đoán là bạn đã không thực sự đặt đường dẫn chính xác hoặc bạn đặt đường dẫn lớp cho một trình nạp lớp khác với trình kết thúc sử dụng mã của bạn. Điều làm cho lib / ext khác với tiện ích mở rộng classpath là lib / ext sẽ ảnh hưởng đến bất kỳ ứng dụng java nào sử dụng JRE cụ thể đó - nó dễ đánh lừa hơn là thiết lập đường dẫn lớp.
Carl Smotricz

Một vài tuần trước, tôi đã trải qua một thất bại khá lớn đã được sửa chữa bằng cách thay đổi các biến môi trường JAVA_HOME và Path của tôi để tham chiếu JRE thay vì JDK. Trong trường hợp nào một chức năng ứng dụng sử dụng JRE và thất bại với JDK? Tôi đoán tôi nên mở một câu hỏi mới. Một lưu ý thú vị là bắt đầu từ phiên bản 1.6, JRE được bao gồm trong bản cài đặt JDK nhưng giải nén ở cùng cấp độ với thư mục JDK trong khi ở phiên bản 1.5 và trước đó thư mục JRE nằm trong JDK. BTW: Câu trả lời tốt!
Jesse Ivy

143

Câu trả lời ở trên (của Pablo) là rất đúng. Đây chỉ là thông tin bổ sung.

Các JRE là, như tên của nó, một môi trường . Về cơ bản, đó là một loạt các thư mục với các tệp liên quan đến Java, để dí dỏm:

  • bin/chứa các chương trình thực thi của Java. Điều quan trọng nhất là java(và đối với Windows, javawcũng vậy), khởi chạy JVM. Có một số tiện ích khác ở đây là tốt, chẳng hạn như keytoolpolicytool.
  • conf/ giữ các tệp cấu hình có thể chỉnh sửa của người dùng để các chuyên gia Java chơi cùng.
  • lib/có một số lượng lớn các tệp hỗ trợ: một số .jartệp, tệp cấu hình, tệp thuộc tính, phông chữ, bản dịch, certs, v.v. - tất cả các "trang trí" của Java. Điều quan trọng nhất là modules, một tệp chứa các .classtệp của thư viện chuẩn Java.
  • Ở một mức độ nhất định, thư viện chuẩn Java cần gọi vào mã gốc. Với mục đích này, JRE chứa một số tệp .dll(Windows) hoặc .dylib(macOS) hoặc .so(Linux) bên dưới bin/hoặc lib/với mã nhị phân riêng hỗ trợ, dành riêng cho hệ thống.

Các JDK cũng là một tập hợp các thư mục. Nó là một superset của JRE, với một số bổ sung:

  • bin/đã được mở rộng với các công cụ phát triển. Điều quan trọng nhất trong số đó là javac; những người khác bao gồm jar, javadocjshell.
  • jmods/, chứa các tệp JMOD cho thư viện chuẩn, đã được thêm vào. Những tập tin này cho phép thư viện chuẩn được sử dụng jlink.

1
Điều này có nghĩa là tôi có thể đặt các biến đường dẫn của mình thành JDK và đó là nó?
Brady

3
@Brady: Vâng, tôi nghĩ vậy. Điều đó làm việc tốt cho tôi, ít nhất. Là một nhà phát triển, về cơ bản, tôi bỏ qua JRE. Nếu có những trường hợp đặc biệt mà bạn đặc biệt muốn JRE, tôi không biết về chúng.
Carl Smotricz

JRE chỉ có thể hoạt động với mã Java được biên dịch, phải không?
SexyBeast

2
@Coolvogel, vì không có trình biên dịch trong JRE, tôi đoán bạn có thể nói như vậy. JRE ở đó để chạy mã Java (đã biên dịch), trong khi JDK cũng cung cấp cho bạn các công cụ để phát triển nó.
Carl Smotricz

1
Vì vậy, về cơ bản JDK bao gồm một trình biên dịch (như Javac) để biên dịch mã, JRE (hệ thống thời gian chạy) để thực thi mã được biên dịch và các công cụ khác có nghĩa là giúp cuộc sống của lập trình viên phát triển dễ dàng, đúng không? Vì vậy, AFAIU, chỉ có Javac và JRE là những công cụ thực sự cần thiết ở đây. Tại sao sau đó, nhiều lần, cài đặt phần mềm, nâng cấp đòi hỏi phải có JDK?
SexyBeast

131

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

JDK là một siêu bộ của JRE và chứa mọi thứ có trong JRE, cộng với các công cụ như trình biên dịch và trình gỡ lỗi cần thiết để phát triển các ứng dụng và ứng dụng. JRE cung cấp các thư viện, Máy ảo Java (JVM) và các thành phần khác để chạy các applet và ứng dụng được viết bằng ngôn ngữ lập trình Java.


3
Sơ đồ tuyệt vời! Tôi hơi bối rối rằng lệnh java được hình dung bên ngoài JRE không đúng. Tôi không hiểu tại sao có các tệp riêng biệt cho lệnh java khi JDK được cài đặt giống hệt nhau về kích thước. Trong trường hợp nào một chức năng ứng dụng sử dụng JRE và thất bại với JDK? Trải nghiệm điều này gần đây và có lẽ nên quay lại theo dõi để nhân rộng và đi đến tận cùng của nó ...
Jesse Ivy

104

Theo cách nói của giáo dân: JDK là ông nội JRE là cha và JVM là con trai của họ. [tức là JDK> JRE> JVM]

JDK = JRE + Công cụ phát triển / gỡ lỗi

JRE = JVM + Các lớp gói Java (như produc, math, lang, awt, swing, v.v.) + thư viện thời gian chạy.

JVM = Hệ thống trình nạp lớp + vùng dữ liệu thời gian chạy + Công cụ thực thi.

Nói cách khác, nếu bạn là một lập trình viên Java, bạn sẽ cần JDK trong hệ thống của mình và gói này cũng sẽ bao gồm JRE và JVM, nhưng nếu bạn là người dùng bình thường thích chơi trò chơi trực tuyến thì bạn sẽ chỉ cần JRE và gói này sẽ không có JDK trong đó.

JVM:

Các Java Virtual Machine (JVM) là máy ảo chạy bytecode Java. JVM không hiểu mã nguồn Java, đó là lý do tại sao bạn biên dịch các tệp * .java của mình để có được các tệp *. Class có chứa mã byte do JVM hiểu được. Đây cũng là thực thể cho phép Java là "ngôn ngữ di động" (viết một lần, chạy mọi nơi). Thật vậy, có các triển khai cụ thể của JVM cho các hệ thống khác nhau (Windows, Linux, MacOS, xem danh sách wikipedia ..), mục đích là với cùng một mã byte, tất cả chúng đều cho kết quả giống nhau.

JDK và JRE

Để giải thích sự khác biệt giữa JDK và JRE, tốt nhất là đọc tài liệu của Oracle và tham khảo sơ đồ:

Môi trường chạy thi hành Java (JRE)

Các Java Runtime Environment (JRE) cung cấp các thư viện, Java Virtual Machine, và các thành phần khác để chạy applet và các ứng dụng viết bằng ngôn ngữ lập trình Java. Ngoài ra, hai công nghệ triển khai chính là một phần của JRE: Java Plug-in, cho phép các applet chạy trong các trình duyệt phổ biến; và Java Web Start, triển khai các ứng dụng độc lập qua mạng. Nó cũng là nền tảng cho các công nghệ trong Nền tảng Java 2, Phiên bản doanh nghiệp (J2EE) để phát triển và triển khai phần mềm doanh nghiệp. JRE không chứa các công cụ và tiện ích như trình biên dịch hoặc trình gỡ lỗi để phát triển các ứng dụng và ứng dụng.

Bộ phát triển Java (JDK)

JDK là một siêu bộ của JRE và chứa mọi thứ có trong JRE, cộng với các công cụ như trình biên dịch và trình gỡ lỗi cần thiết để phát triển các ứng dụng và ứng dụng.

Lưu ý rằng Oracle không phải là người duy nhất cung cấp JDK.

Quy trình biên dịch JIT (Lịch sự: tài liệu Oracle)

JDK> JRE> JVM


Khi bạn nói "biên dịch" hoặc "trình biên dịch", điều này cực kỳ khó hiểu trong ngữ cảnh mà bạn đang đề cập đến: biến mã nguồn java thành mã byte java hoặc biến mã byte java thành mã máy.
OrangeSherbet

Đẹp! Tôi thích sự tương tự ông, cha và con trai. : D
Emkey

Vâng Cảm ơn, rất dễ hiểu những người không quen thuộc với các điều khoản này.
Jaimin Patel

25

Từ trang web java chính thức ...

JRE (môi trường thời gian chạy Java):

  • Đây là một triển khai của Máy ảo Java * thực sự thực thi các chương trình Java.
  • Môi trường chạy thi hành Java là một trình cắm thêm cần thiết để chạy các chương trình java.
  • JRE nhỏ hơn JDK nên cần ít không gian đĩa hơn.
  • JRE có thể được tải xuống / hỗ trợ miễn phí từ https://www.java.com
  • Nó bao gồm các thư viện JVM, Core và các thành phần bổ sung khác để chạy các ứng dụng và tiểu dụng được viết bằng Java.

JDK (Bộ phát triển Java)

  • Nó là một gói phần mềm mà bạn có thể sử dụng để phát triển các ứng dụng dựa trên Java.
  • Bộ phát triển Java là cần thiết để phát triển các ứng dụng java.
  • JDK cần nhiều không gian đĩa hơn vì nó chứa JRE cùng với các công cụ phát triển khác nhau.
  • JDK có thể được tải xuống / hỗ trợ miễn phí từ https://www.oracle.com/technetwork/java/javase/doads/
  • Nó bao gồm JRE, tập hợp các lớp API, trình biên dịch Java, Webstart và các tệp bổ sung cần thiết để viết các ứng dụng và ứng dụng Java.

23

Một điểm khác biệt từ góc độ gỡ lỗi:

Để gỡ lỗi vào các lớp hệ thống Java như String và ArrayList, bạn cần một phiên bản đặc biệt của JRE được biên dịch với "thông tin gỡ lỗi". JRE được bao gồm trong JDK cung cấp thông tin này, nhưng JRE thông thường thì không. JRE thông thường không bao gồm thông tin này để đảm bảo hiệu suất tốt hơn.

Thông tin gỡ lỗi là gì? Dưới đây là một lời giải thích nhanh chóng được lấy từ bài đăng trên blog này :

Các trình biên dịch hiện đại thực hiện công việc khá tốt khi chuyển đổi mã cấp cao của bạn, với các cấu trúc điều khiển được thụt vào và lồng vào nhau và các biến được gõ tùy ý thành một đống bit lớn gọi là mã máy (hoặc mã byte trong trường hợp Java), mục đích duy nhất là để chạy nhanh nhất có thể trên CPU mục tiêu (CPU ảo của JVM của bạn). Mã Java được chuyển đổi thành một số hướng dẫn mã máy. Các biến được đẩy khắp nơi - vào ngăn xếp, vào các thanh ghi hoặc tối ưu hóa hoàn toàn. Các cấu trúc và các đối tượng thậm chí không tồn tại trong mã kết quả - chúng chỉ là một sự trừu tượng được dịch sang các mã hóa cứng thành bộ đệm.

Vì vậy, làm thế nào để một trình sửa lỗi biết nơi dừng lại khi bạn yêu cầu nó phá vỡ tại lối vào một số chức năng? Làm thế nào nó quản lý để tìm thấy những gì để hiển thị cho bạn khi bạn yêu cầu nó cho giá trị của một biến? Câu trả lời là - gỡ lỗi thông tin.

Thông tin gỡ lỗi được tạo bởi trình biên dịch cùng với mã máy. Nó là một đại diện của mối quan hệ giữa chương trình thực thi và mã nguồn gốc. Thông tin này được mã hóa thành định dạng được xác định trước và được lưu trữ cùng với mã máy. Nhiều định dạng như vậy đã được phát minh qua nhiều năm cho các nền tảng và tệp thực thi khác nhau.


9

JVM, JRE, JDK - đây đều là xương sống của ngôn ngữ Java. Mỗi thành phần làm việc riêng biệt. JDK và JRE tồn tại về mặt vật lý nhưng JVM là một cỗ máy trừu tượng có nghĩa là nó không tồn tại về mặt vật lý.

JVM là hệ thống con của JDK và JRE, được sử dụng để kiểm tra mã trung gian được gọi là "mã byte". Đầu tiên, nó tải "tệp lớp" (có phần mở rộng .c) do trình biên dịch Java (javac) tạo ra thông qua trình nạp lớp hệ thống con JVM và vị trí bộ nhớ được phân loại (vùng đăng ký, ngăn xếp, heap và pc) theo cách sử dụng của chúng. Sau đó, nó kiểm tra tất cả mã byte để đảm bảo rằng nó được trả về trong Java và tất cả các truy cập bộ nhớ truy cập của mạng. Công việc của trình thông dịch bắt đầu sau đó nơi nó kiểm tra toàn bộ dòng chương trình theo từng dòng. Các kết quả cuối cùng được hiển thị trong bảng điều khiển / trình duyệt / ứng dụng thông qua JRE (Java Runtime Môi trường) mà các phương tiện thời gian chạy.

JRE cũng là một hệ thống con của JDK cung cấp các phương tiện thời gian chạy như JVM, các lớp, các tệp thực thi như tệp .jar, v.v.

JDK là viết tắt của Java Development Kit. Nó chứa tất cả các thành phần cần thiết được sử dụng trong lập trình Java như lớp, phương thức, swing, AWT, gói, Java (trình thông dịch), javac (trình biên dịch), appletviewer (trình xem ứng dụng applet), v.v. Để kết luận, nó chứa mọi tệp cần thiết để phát triển các ứng dụng, cho dù độc lập hay dựa trên web.


8

JRE

JRE là từ viết tắt của Java Runtime Môi trường. Nó được sử dụng để cung cấp môi trường thời gian chạy. Đây là việc triển khai JVM. Nó tồn tại về mặt vật lý. Nó chứa tập hợp các thư viện + các tệp khác mà JVM sử dụng khi chạy.

JDK

JDK là từ viết tắt của Java Development Kit. Nó tồn tại về mặt vật lý. Nó chứa các công cụ phát triển JRE +.

Liên kết: - http://www.javatpoint.com/difference-b between - jdk - jre - and - jvm

Thông thường, khi bạn chỉ quan tâm đến việc chạy các chương trình Java trên trình duyệt hoặc máy tính của mình, bạn sẽ chỉ cài đặt JRE. Đó là tất cả những gì bạn cần. Mặt khác, nếu bạn dự định thực hiện một số lập trình Java, bạn cũng sẽ cần JDK.


8

JVM, JRE và JDK phụ thuộc vào nền tảng vì cấu hình của mỗi HĐH khác nhau. Nhưng, Java là nền tảng độc lập.

Máy ảo Java (JVM) là một hệ thống thời gian chạy thực thi mã byte Java.

JRE là môi trường (thư viện chuẩn và JVM) cần thiết để chạy các ứng dụng Java.

JDK bao gồm các công cụ phát triển dòng lệnh JRE plus như trình biên dịch và trình gỡ lỗi cần thiết hoặc hữu ích để phát triển các ứng dụng và ứng dụng.


7

Đây là một phản hồi đơn giản trực tiếp từ Oracle http://docs.oracle.com/javase/7/docs/technotes/guides/

Môi trường thời gian chạy Java SE (JRE)

JRE cung cấp các thư viện, máy ảo Java và các thành phần khác cần thiết để bạn chạy các applet và ứng dụng được viết bằng ngôn ngữ lập trình Java. Môi trường thời gian chạy này có thể được phân phối lại với các ứng dụng để làm cho chúng đứng tự do.

Bộ công cụ phát triển Java SE (JDK)

JDK bao gồm các công cụ phát triển dòng lệnh JRE plus như trình biên dịch và trình gỡ lỗi cần thiết hoặc hữu ích để phát triển các ứng dụng và ứng dụng.


7

Nếu bạn muốn chạy các chương trình Java, nhưng không phát triển chúng, hãy tải xuống Môi trường thời gian chạy Java hoặc JRE. Nếu bạn muốn phát triển chúng, hãy tải xuống bộ Phát triển Java hoặc JDK

JDK

Chúng ta gọi JDK là một bộ công cụ, bao gồm những thứ cần thiết để phát triển và chạy các ứng dụng java.

JDK được đưa ra làm môi trường phát triển để xây dựng các ứng dụng, thành phần và applet.

JRE

Nó chứa mọi thứ bạn cần để chạy các ứng dụng Java ở dạng biên dịch. Bạn không cần bất kỳ thư viện và những thứ khác. Tất cả những thứ bạn cần được biên soạn.

JRE không thể được sử dụng để phát triển, chỉ được sử dụng để chạy các ứng dụng.


6

JVM (Máy ảo Java) là một máy trừu tượng. Đây là một đặc tả cung cấp môi trường thời gian chạy trong đó java bytecode có thể được thực thi.

JRE là từ viết tắt của Java Runtime Môi trường. Nó được sử dụng để cung cấp môi trường thời gian chạy. Đây là việc triển khai JVM. Nó tồn tại về mặt vật lý. Nó chứa tập hợp các thư viện + các tệp khác mà JVM sử dụng khi chạy

JDK là từ viết tắt của Java Development Kit. Nó tồn tại về mặt vật lý. Nó chứa các công cụ phát triển JRE +


6

Nếu bạn là một lập trình viên Java, bạn sẽ cần JDK trong hệ thống của mình và gói này cũng sẽ bao gồm JRE và JVM nhưng nếu bạn là người dùng bình thường thích chơi trò chơi trực tuyến thì bạn sẽ chỉ cần JRE và gói này sẽ không có JDK trong đó. .

JVM

JVM (Máy ảo Java) là một máy trừu tượng. Đây là một đặc tả cung cấp môi trường thời gian chạy trong đó java bytecode có thể được thực thi.

JVM có sẵn cho nhiều nền tảng phần cứng và phần mềm. JVM, JRE và JDK phụ thuộc vào nền tảng vì cấu hình của mỗi HĐH khác nhau. Nhưng, Java là nền tảng độc lập.

JRE

Nó chứa mọi thứ bạn cần để chạy các ứng dụng Java ở dạng biên dịch. Bạn không cần bất kỳ thư viện và những thứ khác. Tất cả những thứ bạn cần được biên soạn.

JRE không thể được sử dụng để phát triển, chỉ được sử dụng để chạy các ứng dụng.

Bộ công cụ phát triển Java SE (JDK)

JDK bao gồm các công cụ phát triển dòng lệnh JRE plus như trình biên dịch và trình gỡ lỗi cần thiết hoặc hữu ích để phát triển các ứng dụng và ứng dụng.

(Nguồn: Hỏi & Đáp về GeekForGeek , Tổng quan về Nền tảng Java )


Đã có đạo văn từ nhiều trang web (đối với các phần JVM và JDK). Lần tới, vui lòng trích dẫn nguồn của bạn - đó không phải là tác phẩm gốc của bạn.
Jonathan Lam

6

Một sự hiểu biết rõ ràng về các thuật ngữ này (JVM, JDK, JRE) là rất cần thiết để nắm bắt cách sử dụng và sự khác biệt của chúng.

Máy ảo Java JVM (JVM) là một hệ thống thời gian chạy thực thi mã byte Java. JVM giống như một máy tính ảo có thể thực thi một tập hợp các hướng dẫn được biên dịch và thao tác các vị trí bộ nhớ. Khi trình biên dịch Java biên dịch mã nguồn, nó sẽ tạo ra một tập lệnh được tối ưu hóa cao được gọi là mã byte trong tệp. Class. JVM diễn giải các hướng dẫn mã byte này và chuyển đổi chúng thành mã cụ thể của máy để thực thi.

JDK Bộ công cụ phát triển Java (JDK) là một môi trường phát triển phần mềm mà bạn có thể sử dụng để phát triển và thực thi các ứng dụng Java. Nó bao gồm JRE và một bộ công cụ lập trình, chẳng hạn như trình biên dịch Java, trình thông dịch, trình duyệt ứng dụng và trình xem tài liệu. JDK được triển khai thông qua các nền tảng Java SE, Java EE hoặc Java ME.

JRE Môi trường chạy thi hành Java (JRE) là một phần của JDK bao gồm JVM, các lớp lõi và một số thư viện hỗ trợ phát triển ứng dụng. Mặc dù JRE có sẵn như là một phần của JDK, bạn cũng có thể tải xuống và sử dụng nó một cách riêng biệt.

Để hiểu đầy đủ bạn có thể xem Blog của tôi: Jdk Jre Jvm và sự khác biệt


5

jdk là cần thiết để biên dịch thành mã và chuyển đổi mã java thành mã byte trong khi jre là cần thiết để thực thi mã byte.


5
@Noy: Không chỉ là rất ít thông tin, nó cũng không chứa bất cứ điều gì mà các câu trả lời khác không có.
Amos M. Carpenter

5

JDK bao gồm các công cụ phát triển dòng lệnh JRE plus như trình biên dịch và trình gỡ lỗi cần thiết hoặc hữu ích để phát triển các ứng dụng và ứng dụng.

JRE về cơ bản là Máy ảo Java nơi các chương trình Java của bạn chạy. Nó cũng bao gồm các plugin trình duyệt để thực thi Applet.

JDK là một cỗ máy trừu tượng. Đây là một đặc tả cung cấp môi trường thời gian chạy trong đó java bytecode có thể được thực thi.

Vì vậy, về cơ bản JVM <JRE <JDK theo @Jaimin Patel đã nói.


5

Đơn giản :

JVM là mã Java máy ảo thực thi trên

JRE là môi trường (thư viện chuẩn và JVM) cần thiết để chạy các ứng dụng Java

JDK là JRE với các công cụ và tài liệu dành cho nhà phát triển


4

Sự khác biệt giữa JDK và JRE là JDK là bộ công cụ phát triển phần mềm cho java trong khi JRE là nơi bạn chạy các chương trình của mình.


4

Giả sử, nếu bạn là một nhà phát triển thì vai trò của bạn là phát triển chương trình cũng như thực hiện chương trình. vì vậy bạn phải có môi trường để phát triển và thực thi, được cung cấp bởi JDK.

Giả sử, nếu bạn là khách hàng thì bạn không phải lo lắng về việc phát triển. Bạn cần là một môi trường để chạy chương trình và chỉ nhận kết quả do JRE cung cấp.

JRE thực thi ứng dụng nhưng JVM đọc từng dòng hướng dẫn để nó thông dịch.

JDK = JRE + Công cụ phát triển

JRE = JVM + Các lớp thư viện


2

JRE

JRE là từ viết tắt của Java Runtime Môi trường. Nó được sử dụng để cung cấp môi trường thời gian chạy. Đây là việc triển khai JVM. Nó tồn tại về mặt vật lý. Nó chứa tập hợp các thư viện + các tệp khác mà JVM sử dụng trong thời gian chạy.

Việc triển khai các JVM cũng được các công ty khác phát hành tích cực ngoài Sun Micro Systems.

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

JDK

JDK là từ viết tắt của Java Development Kit. Nó tồn tại về mặt vật lý. Nó chứa các công cụ phát triển JRE +.

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


Cả thông tin trong văn bản và đồ họa đã được cung cấp trong các câu trả lời khác trước đó.
Karl Richter
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.