Apakah kompiler Java Eclipse hanya pembungkus inti yang sama dengan javac
program yang dibungkus, atau apakah itu kompilator terpisah sama sekali? Jika yang terakhir, mengapa mereka menemukan kembali roda?
Apakah kompiler Java Eclipse hanya pembungkus inti yang sama dengan javac
program yang dibungkus, atau apakah itu kompilator terpisah sama sekali? Jika yang terakhir, mengapa mereka menemukan kembali roda?
Jawaban:
Eclipse telah mengimplementasikan kompilernya sendiri yang disebut Eclipse Compiler for Java (ECJ).
Ini berbeda dari javac, kompiler yang dikirimkan bersama Sun JDK. Satu perbedaan penting adalah bahwa kompiler Eclipse memungkinkan Anda menjalankan kode yang sebenarnya tidak benar-benar dikompilasi. Jika blok kode dengan kesalahan tidak pernah dijalankan, program Anda akan berjalan dengan baik. Jika tidak, itu akan mengeluarkan pengecualian yang menunjukkan bahwa Anda mencoba menjalankan kode yang tidak dikompilasi.
Perbedaan lain adalah bahwa kompilator Eclipse memungkinkan untuk membangun tambahan dari dalam Eclipse IDE, yaitu, semua kode dikompilasi segera setelah Anda selesai mengetik.
Fakta bahwa Eclipse hadir dengan kompilernya sendiri juga jelas karena Anda dapat menulis, mengkompilasi, dan menjalankan kode Java di Eclipse tanpa menginstal Java SDK.
Beberapa contoh di mana ECJ lebih disukai daripada javac adalah:
-proceedOnError
dan itu tidak akan menghasilkan file .class dari sumber dengan kesalahan.
Semua orang sudah menjelaskan bahwa mereka berbeda. Berikut adalah beberapa perbedaan perilaku yang saya perhatikan di antara kedua penyusun. Mereka semua bermuara pada bug di (setidaknya) salah satu implementasi.
Compiler internal Eclipse didasarkan pada kompiler java Jikes IBM . (Perhatikan bahwa Eclipse juga memulai kehidupannya di IBM). Ini sepenuhnya independen dari kompiler Java Sun di JDK; itu bukan pembungkus sekitar Sun javac
.
Jikes sudah ada sejak lama, dulu jauh lebih cepat daripada kompiler JDK Java standar (tapi saya tidak tahu apakah itu masih benar). Mengenai mengapa IBM ingin menulis kompiler Java sendiri: mungkin karena alasan lisensi (mereka juga memiliki implementasi Java sendiri).
Ini adalah kompiler yang terpisah sama sekali. Ini diperlukan karena javac tidak mengizinkan kompilasi kode yang sedikit rusak, dari situs gerhana
Kompiler Java tambahan. Diterapkan sebagai pembangun Eclipse, didasarkan pada teknologi yang dikembangkan dari VisualAge untuk kompiler Java. Secara khusus, ini memungkinkan untuk menjalankan dan men-debug kode yang masih mengandung kesalahan yang belum terselesaikan.