निर्देशिका में सभी फ़ाइलों को * .class फ़ाइलों में कैसे संकलित करें?जावा पैकेज का निर्माण (सभी फ़ाइलों के लिए जावा)
उत्तर
खैर, यह बहुत स्पष्ट लगता है, इसलिए मैं कुछ
javac *.java
या शायद (उचित पुस्तकालय संदर्भ आदि के साथ) गायब हो सकता है:
javac -d bin *.java
javac बनाने आउटपुट के लिए सही निर्देशिका संरचना।
क्या आप कुछ और परिष्कृत खोज रहे थे? यदि हां, तो क्या आप अधिक जानकारी दे सकते हैं (और आप किस प्लेटफॉर्म पर हैं)?
यहाँ एक कोड टुकड़ा है कि मैं एक पूरी परियोजना जहां, हमेशा की तरह, स्रोत फ़ाइलें एक गहरा नेस्टेड पदानुक्रम में हैं और कई .jar फ़ाइलें कि classpath में जाना होगा देखते हैं का निर्माण करने के लिए उपयोग (यूनिक्स उपयोगिताओं की आवश्यकता है):
CLASSPATH=
for x in $(find | grep jar$); do CLASSPATH="$CLASSPATH:$x"; done
SRC=$(find | grep java$)
javac -cp "$CLASSPATH" $SRC
फिर भी यूनिक्स पर का उपयोग कर "लगता है" एक और तरीका है यहाँ वर्णित है:
http://stas-blogspot.blogspot.com/2010/01/compile-recursively-with-javac.html
निम्न दो आदेशों निर्देशिका ./src
और उसके उप भीतर निहित सभी जावा फ़ाइलें संकलन होगा निर्देशिका:
find ./src -name *.java > sources_list.txt
javac -classpath "${CLASSPATH}" @sources_list.txt
पहले, find
sources_list.txt
, कि जावा स्रोत फ़ाइलों को पथ में शामिल है एक फ़ाइल उत्पन्न करता है। अगला, javac
सिंटैक्स @sources_list.txt
का उपयोग करके इन सभी स्रोतों को संकलित करता है।
अपनी पोस्ट में सुधार करने पर विचार करें क्योंकि आपका उत्तर अनिवार्य रूप से एक लिंक है। देखें: [क्या उत्तर हैं कि वास्तव में कहीं और "अच्छे उत्तर" लिंक हैं?] (Http://meta.stackexchange.com/q/8231/156620) और [बुरा लिंक क्यों है?] (Http: //meta.stackexchange .com/q/7515/156620) –
अच्छा समाधान। हालांकि आप अस्थायी फ़ाइल को/dev/stdin का उपयोग करके छोड़ दें। अर्थात। 'find ./src -name * .java | जावैक-क्लास्पाथ "$ {क्लासस्पैट}" @/dev/stdin' – Dunes
1) मेकफ़ाइल (या चींटी या मेवेन या ....) 2) कोई – KevinDTimm