2009-09-28 18 views
59

में जावा का लक्ष्य संस्करण सेट करना मुझे जावा (1.5) के एक विशिष्ट संस्करण के तहत चलाने के लिए चींटी (1.7.0) का उपयोग करके एक जार फ़ाइल संकलित करने की आवश्यकता है। मेरे पास वर्तमान में मेरी मशीन पर जावा 1.6 है। मैं सेटिंग की कोशिश की है:जावा javac

<target name="compile"> 
    <javac compiler="javac1.5" target="1.5" srcdir=.../> 
</target> 

मैं भी

<property name="build.compiler" value="modern"/> 

को हटा दिया है और कोई गुण फ़ाइल नहीं है। मैं लिनक्स/एसयूएसई

पर जावा 1.6 चला रहा हूं, यह भी निर्धारित करने का एक आसान तरीका है कि जार फ़ाइल में जावा का कौन सा संस्करण अपेक्षित है।

उत्तर

81

"लक्ष्य" विशेषता का उपयोग करें और 'कंपाइलर' विशेषता को हटा दें। here देखें।

<target name="compile"> 
    <javac target="1.5" srcdir=.../> 
</target> 

आशा इस मदद करता है

+5

मुझे स्रोत और बूटक्लासपैथ विशेषताओं का भी उपयोग करना पड़ा। क्रॉस संकलन उदाहरण के लिए [यहां] देखें (http://docs.oracle.com/javase/7/docs/technotes/tools/solaris/javac.html#examples)। (चींटी विशेषताओं के साथ सीधा पत्राचार है) –

+3

अगर स्रोत 'स्रोत' और 'बूटक्लासपथ' जोड़ने के लिए उत्तर संशोधित किया जा सकता है तो यह वास्तव में अच्छा होगा। –

14

classfiles मैं प्रयोग किया जाता में जावा के संस्करण ढूंढने के लिए:: तो यह कुछ इस तरह जाना चाहिए

javap -verbose <classname> 

जो के रूप में शुरू में संस्करण की घोषणा की

minor version: 0 
major version: 49 

जो जावा 1.5

से मेल खाती है
5

आप कार्य के डिफ़ॉल्ट लक्ष्य संस्करण को अद्यतन करने के लिए {{ant.build.javac.target=1.5}} चींटी संपत्ति भी सेट कर सकते हैं। http://ant.apache.org/manual/javacprops.html#target

39

दोनों स्रोत और लक्ष्य निर्दिष्ट किए जाने चाहिए। मैं ant defaults प्रदान करने की सलाह देते हैं, इस तरह आप हर javac कार्य के लिए स्रोत/लक्ष्य विशेषता निर्दिष्ट करने की आवश्यकता नहीं है:

<property name="ant.build.javac.source" value="1.5"/> 
<property name="ant.build.javac.target" value="1.5"/> 

अधिक जानकारी के लिए Java cross-compiling notes देखें।