2010-09-02 6 views
5

मैं ग्रहण में उपयोग किए जाने वाले उसी ग्रहण कंपाइलर का उपयोग करके ताजा चेक आउट आउट स्रोत पेड़ बनाने के लिए चींटी का उपयोग करके एक स्वचालित निर्माण वातावरण बना रहा हूं। समस्या यह है कि परिणामस्वरूप वर्ग फ़ाइलों में से कुछ ग्रहण के भीतर संकलित द्वारा उत्पन्न कक्षा फ़ाइल की तुलना में आकार में भिन्न हैं। ऐसा क्यों है? क्या यह ठीक है, और उम्मीद की जा सकती है? के रूप में निर्धारित मैं चींटी ग्रहण संकलक उपयोग करने के लिए कह रहा हूँ, जैसे:ग्रहण में समान कोड को संकलित करते समय कक्षा फ़ाइलों को अलग आकार क्यों बनाते हैं, और उसके बाद ग्रहण कंपाइलर के साथ चींटी के माध्यम से?

<target description="compile project with Eclipse compiler" name="build-eclipse-compiler"> 
     <property name="build.compiler" value="org.eclipse.jdt.core.JDTCompilerAdapter"/> 
     <antcall target="build"/> 
</target> 

उत्तर

5

ग्रहण अपनी ही संकलक, जो थोड़ा अलग उत्पन्न करता है का उपयोग करता है - लेकिन सही - बाईटकोड।

चींटी मानक सूर्य कंपाइलर - जावा - जेडीके में उपलब्ध का उपयोग करता है।

ग्रहण कंपाइलर eclipse.org से डाउनलोड किया जा सकता है और चींटी ने इसका उपयोग करने के लिए कहा। इसमें अकेले जेआरई के साथ संकलन करने में सक्षम होने का अतिरिक्त लाभ है, जो पूर्ण जेडीके की तुलना में स्थापित करना बहुत आसान है। में http://download.eclipse.org/eclipse/downloads/drops/R-3.6-201006080911/index.php


संपादित करें "जेडीटी कोर बैच संकलक" के लिए देखो: यहां तक ​​कि एक ही संकलक के साथ बाइट उत्पन्न कोड अलग हो सकता है। इस पर प्रभाव रखने वाले कुछ कारक हैं:

  • लक्ष्य JVM - जावा 6 बाइट कोड जावा 1.2 बाइट कोड से थोड़ा अलग हैं।
  • अनुकूलन स्तर (कुछ इनलाइनिंग, इन दिनों JVM को बेहतर छोड़ दिया गया)
  • डीबग जानकारी शामिल करना।
+2

"एक ही ग्रहण संकलक कि ग्रहण में प्रयोग किया जाता है का उपयोग कर" जानबूझकर ECJ javac के लिए उन की नकल करता करने के लिए कमांड लाइन इंटरफेस (हालांकि मेरा अनुमान संकलक झंडे होगा ही नहीं हैं) – Cascabel

+0

। –

+1

अच्छा स्पष्टीकरण हालांकि मैं हमेशा पूर्ण जेडीके को नीचे खींचता हूं, मुश्किल से थोड़ा अधिक समय नहीं लेता है। –

संबंधित मुद्दे

 संबंधित मुद्दे