Là trình biên dịch Java của Eclipse chỉ là một trình bao bọc xung quanh cùng một lõi mà javac
chương trình được bao bọc xung quanh hay nó là một trình biên dịch riêng biệt hoàn toàn? Nếu sau này, tại sao họ sẽ phát minh lại bánh xe?
Là trình biên dịch Java của Eclipse chỉ là một trình bao bọc xung quanh cùng một lõi mà javac
chương trình được bao bọc xung quanh hay nó là một trình biên dịch riêng biệt hoàn toàn? Nếu sau này, tại sao họ sẽ phát minh lại bánh xe?
Câu trả lời:
Eclipse đã triển khai trình biên dịch riêng của nó được gọi là Trình biên dịch Eclipse cho Java (ECJ).
Nó khác với javac, trình biên dịch được gửi cùng với Sun JDK. Một điểm khác biệt đáng chú ý là trình biên dịch Eclipse cho phép bạn chạy mã không thực sự biên dịch đúng. Nếu khối mã có lỗi không bao giờ được chạy, chương trình của bạn sẽ chạy tốt. Mặt khác, nó sẽ đưa ra một ngoại lệ cho biết bạn đã cố chạy mã không biên dịch.
Một sự khác biệt nữa là trình biên dịch Eclipse cho phép xây dựng gia tăng từ bên trong IDE Eclipse, nghĩa là, tất cả các mã được biên dịch ngay khi bạn nhập xong.
Thực tế là Eclipse đi kèm với trình biên dịch riêng của nó cũng rõ ràng bởi vì bạn có thể viết, biên dịch và chạy mã Java trong Eclipse mà không cần cài đặt SDK Java.
Một vài ví dụ trong đó ECJ được ưa thích hơn javac là:
-proceedOnError
và đơn giản là nó sẽ không tạo ra các tệp. Class từ nguồn có lỗi.
Mọi người đã giải thích rằng họ khác nhau. Dưới đây là một số khác biệt trong hành vi mà tôi nhận thấy giữa hai trình biên dịch. Tất cả đều sôi sục với một lỗi trong (ít nhất) một trong những triển khai.
Trình biên dịch dựng sẵn của Eclipse dựa trên trình biên dịch java Jike của IBM . (Lưu ý rằng Eclipse cũng bắt đầu cuộc sống của nó tại IBM). Nó hoàn toàn độc lập với trình biên dịch Java của Sun trong JDK; nó không phải là một cái bọc quanh mặt trời javac
.
Jike đã tồn tại trong một thời gian dài, nó từng nhanh hơn rất nhiều so với trình biên dịch Java JDK tiêu chuẩn (nhưng tôi không biết liệu điều đó có còn đúng không). Về lý do tại sao IBM muốn viết trình biên dịch Java của riêng họ: có thể vì lý do cấp phép (họ cũng có triển khai Java riêng).
Nó là một trình biên dịch riêng biệt hoàn toàn. Điều này là cần thiết vì javac không cho phép biên dịch mã bị hỏng nhẹ, từ trang nhật thực
Một trình biên dịch Java gia tăng. Được triển khai như một trình xây dựng Eclipse, nó dựa trên công nghệ được phát triển từ VisualAge cho trình biên dịch Java. Đặc biệt, nó cho phép chạy và gỡ lỗi mã vẫn chứa các lỗi chưa được giải quyết.