Sự khác biệt giữa default-jdk, ecj, gcj và openjdk là gì?


23

Sáng nay, tôi đã cố gắng cài đặt một cái gì đó và bắt gặp một tuyên bố như thế này:

The program 'javac' can be found in the following packages:
 * default-jdk
 * ecj
 * gcj-4.6-jdk
 * gcj-4.7-jdk
 * openjdk-7-jdk
 * openjdk-6-jdk
Try: sudo apt-get install <selected package>

Sự khác biệt giữa default-jdk, ecj, gcj và openjdk là gì?

Cảm ơn trước.


1
Ngoài ra còn có Jike.
Pacerier

Câu trả lời:


16

mặc định

Đây là một gói đơn giản phụ thuộc vào openjdk-7-jre (và về cơ bản là tương đương với openjdk-7-jre ) và default-jre-headless . Nó cài đặt "Thời gian chạy tương thích Java hoặc Java tiêu chuẩn", đó là OpenJDK 7 JRE.

Gói này trỏ đến thời gian chạy Java hoặc thời gian chạy tương thích Java được đề xuất cho kiến ​​trúc i386, đó là openjdk-7-jre cho i386.

Thông tin
gói Phụ thuộc gói (saucy)

ecj

Đây là "trình biên dịch Java Eclipse độc ​​lập". Cài đặt nó sẽ không cài đặt Eclipse, vì nó là một gói độc lập (xem liên kết phụ thuộc bên dưới). Nó chứa "một phiên bản độc lập của trình biên dịch JDT Eclipse được phân phối như một phần của Eclipse" và tương thích với Java 1.3 đến 1.7.

Gói này cung cấp một phiên bản độc lập của trình biên dịch JDT Eclipse, được phân phối như một phần của Eclipse. Nó vượt qua JCK (Bộ tương thích Java) và tương thích với Java 1.3, 1.4, 1.5, 1.6 và 1.7.

Thông tin
gói Phụ thuộc gói (saucy)

gcj-4.6-jdk

(gcj-4.7-jdk giống nhau nhưng đối với Java 7)

Đây là một tiền đề cho trình biên dịch GCC để biên dịch các tệp nguồn và mã nguồn Java.

GCJ là một giao diện người dùng cho trình biên dịch GCC, vốn có thể biên dịch cả các tệp nguồn (tm) Java và mã byte. Trình biên dịch cũng có thể tạo các tệp lớp. Các công cụ phát triển java khác từ classpath được bao gồm trong gói này.

Gói này cũng chứa một tập hợp các tập lệnh bao bọc và các liên kết tượng trưng. Nó có nghĩa là để cung cấp một giao diện giống như Java-SDK cho bộ công cụ GCJ.

Nó có nghĩa là một sự thay thế nguồn mở cho trình biên dịch Java Java nguồn đóng. Nó dường như hầu hết bị lỗi thời và lỗi thời (không được cập nhật), xem các liên kết bên dưới (đặc biệt là các bản cập nhật cuối cùng trên trang chủ của GCJ).

Thông tin gói

Trình biên dịch Java (GCJ) của GNU đã chết? - Trang chủ Stack Overflow
GCJ trên gnu.org (Cập nhật: Liên kết đã biến mất ngay bây giờ, nhưng wiki GCJ vẫn có sẵn

openjdk-6-jdk

(openjdk-7-jdk là như nhau nhưng đối với Java 7)

Một phiên bản mã nguồn mở của nền tảng Java.
Từ Wiki :

Mục tiêu chính của dự án OpenJDK là tạo ra một triển khai nguồn mở của Nền tảng Java SE (6 và 7). Đây là phiên bản Java mặc định mà Ubuntu sử dụng và dễ cài đặt nhất.

Tóm tắt gói:

OpenJDK là một môi trường phát triển để xây dựng các ứng dụng, tiểu dụng và các thành phần sử dụng ngôn ngữ lập trình Java.

Các gói được xây dựng bằng cách sử dụng hỗ trợ xây dựng IcedTea và các bản vá từ dự án IcedTea.

Thông tin gói


Ngoài ra, không được đề cập trong câu hỏi của bạn là Oracle Java (vì nó không có trong repos mặc định), mà tôi sẽ liệt kê dưới đây để hoàn thiện

trình cài đặt oracle-java7

(tên gói từ Web Up8 PPA , được phân phối bởi Oracle trong .tar.gz)

Nguồn đóng 'triển khai' chính thức của Java bởi Oracle (trước đây là Sun). Không được lưu trữ trong repos chính thức do vấn đề cấp phép. Nó được Web Up8 cung cấp dưới dạng tập lệnh tải xuống và cài đặt nó cho bạn.

Cách cài đặt - Web Up8


có nghĩa là cài đặt ecj sẽ cài đặt Eclipse + Java?
rdʒɑ 16/11/13

Mục đích của GCJ là gì?
rdʒɑ

@rajagenupula Xem sửa của tôi ↑↑
kiri

4

Tôi đã từng gặp vấn đề tương tự. Những gì tôi tìm thấy là họ đang có sự khác biệt giữa người này với người khác.

Cả hai default-jdkgiống nhauopenjdk hơn khi chúng có cùng mã java API. Nhưng sự khác biệt là trong nền tảng mục tiêu.

  • openjdk: Là ổn định nhất. Nó được thiết kế cho tất cả các nền tảng . Về cơ bản, nó đang nhắm mục tiêu các nền tảng nguồn mở .

  • default-jdk: Không ổn định . Nó được thiết kế nhằm vào các nền tảng mục tiêu nhất định . Về cơ bản, nó đang nhắm mục tiêu các nền tảng Đóng . (Sau này có sẵn cho Nguồn mở) Các JRE đang ở trong này.

Nhưng những người khác thì hoàn toàn khác: Họ chỉ là Trình biên dịch . Chúng được biết là đã xuất hiện bởi vì, lúc đầu Java không có sẵn cho Nguồn mở. Chỉ các trình biên dịch cetain được phát hành cho những thứ như Eclipse.

  • gcj -jdk: (Trình biên dịch GNU cho Java). Nó là một trình biên dịch cho Java trong GNU. (Được sử dụng bởi Java)

  • ecj: (Trình biên dịch Java Eclipse) Là trình biên dịch Java được sử dụng bởi Eclipse.

Ecj này không phải ECJ mà là Bộ công cụ tính toán tiến hóa Java


Cảm ơn bạn đã ghé qua, xin vui lòng xem các ý kiến ​​trên tôi đã đưa ra câu trả lời của đồng nghiệp và cố gắng giải quyết chúng.
rdʒɑ
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.