[英]What is the difference between javac and the Eclipse compiler?
Eclipse 的 Java 編譯器只是圍繞javac
程序所包裹的同一核心的包裝器,還是完全是一個單獨的編譯器? 如果是后者,他們為什么要重新發明輪子?
Eclipse 已經實現了自己的編譯器,稱為Eclipse Compiler for Java (ECJ)。
它與 javac 不同,javac 是 Sun JDK 附帶的編譯器。 一個顯着的區別是 Eclipse 編譯器允許您運行實際上沒有正確編譯的代碼。 如果出現錯誤的代碼塊從未運行過,您的程序將運行良好。 否則,它會拋出一個異常,表明您試圖運行無法編譯的代碼。
另一個區別是 Eclipse 編譯器允許從 Eclipse IDE 內部進行增量構建,也就是說,一旦您完成輸入,所有代碼都會被編譯。
Eclipse 帶有自己的編譯器這一事實也很明顯,因為您可以在 Eclipse 中編寫、編譯和運行 Java 代碼,甚至無需安裝 Java SDK。
ECJ 優於 javac 的幾個例子是:
每個人都已經解釋過他們是不同的。 以下是我注意到的兩個編譯器之間的一些行為差異。 它們都歸結為(至少)其中一個實現中的錯誤。
Eclipse 的內置編譯器基於 IBM 的Jikes java 編譯器。 (請注意,Eclipse 也是從 IBM 開始的)。 它在JDK中完全獨立於Sun的Java編譯器; 它不是 Sun 的javac
的包裝器。
Jikes 已經存在很長時間了,它曾經比標准的 JDK Java 編譯器快很多(但我不知道這是否仍然正確)。 至於為什么 IBM 想要編寫自己的 Java 編譯器:可能是因為許可的原因(他們也有自己的 Java 實現)。
它完全是一個單獨的編譯器。 這是必需的,因為 javac 不允許編譯來自eclipse 站點的輕微損壞的代碼
增量 Java 編譯器。 作為 Eclipse 構建器實現,它基於從 VisualAge for Java 編譯器演變而來的技術。 特別是,它允許運行和調試仍然包含未解決錯誤的代碼。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.