2010-02-16 20 views
27

Để nói sự thật, tôi khá bối rối về tất cả các điều khoản này (JDK/JRE/Java SDK). Tôi không chắc mỗi người làm gì.JDK/JRE/JVM/Java SDK | Tất cả chúng có ý nghĩa gì? Đôi khi bạn có thể phát triển với JRE và đôi khi bạn cần JDK?

Khi lần đầu tiên tôi bắt đầu thực hiện các ví dụ đơn giản trong nhật thực, tôi chắc chắn rằng tôi chỉ có JRE, mà tôi tin là trình cài đặt java mặc định người dùng thường xuyên sử dụng để có thể chạy các chương trình java/applet trên hệ thống của họ.

Tuy nhiên, hiện tại trong lớp, chúng tôi đang sử dụng Google Appengine và điều này yêu cầu JDK mà tôi đoán là giống như Java SDK. Sau khi lãng phí thời gian tìm ra rằng việc cài đặt JDK có nghĩa là tôi cũng phải thêm java/bin vào các biến môi trường để có được javac -version để làm việc trong dấu nhắc lệnh, tôi thấy rằng chỉ JDK có javac ...

Cách là các chương trình java đầu của tôi làm việc mà không cần cài đặt JDK và do đó không có javac? Và thực sự là câu hỏi chính ... Sự khác biệt giữa JRE và JDK là gì, và khi nào bạn sử dụng mỗi cái?

Cảm ơn bạn :)

+0

Liên kết này sẽ khá hữu ích để hiểu jre, jdk: http://docs.oracle.com/javase/8/docs/ –

Trả lời

17

Eclipse có trình biên dịch tích hợp sẵn của nó (được gọi là ecj), có lẽ là lý do bạn có thể lấy đi khi không cài đặt JDK để sử dụng nó. Nó không sử dụng javac.

Google App Engine sử dụng số javac đi kèm với JDK.

+0

nhưng jre nên được cài đặt? – Mahi

+0

@Mahi Có, bạn cần phải cài đặt JRE để chạy Eclipse. –

35

JRE = Java Runtime Environment - những gì bạn cần để chạy chương trình/phần mềm yêu cầu Java hoặc sử dụng thư viện được viết bằng Java. Ví dụ, OpenOffice yêu cầu Java Runtime Environment

JDK/Java SDK = Bộ phát triển Java/Bộ phát triển phần mềm Java - những gì bạn cần để viết chương trình yêu cầu Java hoặc sử dụng thư viện được viết bằng Java. Ví dụ, nếu bạn đã viết công cụ xử lý văn bản của riêng bạn trong Java.

java đi kèm với JRE vì nó khởi chạy VM (máy ảo). Nó có thể lấy trong các tệp class là các tệp đã được biên dịch bằng cách sử dụng JDK.

JDK đi kèm với javac vì đó là những gì bạn cần để biên dịch các tệp .java thành .class tệp sau đó có thể chạy trên JRE.

+1

Bạn chắc chắn rằng JRE đi kèm với javac? – malaverdiere

+0

Haha, đó là tôi gõ thông qua điện thoại Android của tôi. Tôi sẽ sửa lỗi đánh máy! –

+0

Tôi ước tôi có thể bầu chọn 2 câu trả lời là câu trả lời hay nhất. Giữa bạn và Chris, các bạn giải thích nó hoàn hảo cho tôi. Cảm ơn! –

2

Không có cách nào bạn sử dụng JRE để biên dịch các chương trình Java. javac, trình biên dịch Java, chỉ đi kèm với JDK.

  • Bạn có thể viết chương trình Java bằng bất kỳ trình soạn thảo văn bản nào, bạn không cần bất kỳ điều gì đặc biệt để thực hiện việc này.
  • Bạn cần JRE để chạy các chương trình Java. JRE bao gồm Máy ảo Java, cần thiết để chạy các chương trình Java đã biên dịch.
  • Bạn cần JDK để biên dịch các chương trình Java. Vì vậy, nếu bạn là một nhà phát triển Java, bạn có thể chỉ muốn cài đặt JDK vì nó đi kèm với các công cụ cần thiết để biên dịch, ngoài Máy ảo Java.
+4

Thực ra, điều đó đúng, miễn là bạn không tính đến nhật thực. Nhưng đây là câu hỏi ban đầu được đề cập đến nhật thực, nó sai. Xem câu trả lời của Chris Jester-Young. (Mặc dù tôi phải thừa nhận rằng tôi đã làm việc nhiều năm với nhật thực mà không nhận ra rằng nó không sử dụng javac) –

+1

Tôi cũng không biết điều đó. – Cesar

3

Sự khác biệt giữa JRE và JDK và thời điểm bạn sử dụng mỗi loại là gì?

JRE: Java Runtime Environment. Nó chỉ được sử dụng để chạy các chương trình Java. Theo như Chris Jester -Young được đề cập, Eclipse đã tích hợp trình biên dịch. Đó là lý do tại sao bạn chỉ cần JRE (để chạy eclipse)

Nếu bạn gửi một chương trình Java, điều duy nhất khách hàng cần phải có là này môi trường runtime

JDK: Java Develpment Kit, điều này cũng bao gồm một JRE bên trong, nhưng cũng có các công cụ khác để phát triển chương trình, chẳng hạn như trình biên dịch java javac trong số nhiều công cụ khác.

Nếu bạn muốn tạo chương trình java, bạn nên sử dụng chương trình này.

1

'Đôi khi bạn có thể phát triển với jre'

Không.

Bạn phát triển với Bộ công cụ phát triển Java. Bạn chạy với Java Runtime Environment hoặc Engine hoặc bất cứ gì nó được gọi.

Các vấn đề liên quan