2010-03-01 17 views

उत्तर

24

खैर, यह बहुत स्पष्ट लगता है, इसलिए मैं कुछ

javac *.java 

या शायद (उचित पुस्तकालय संदर्भ आदि के साथ) गायब हो सकता है:

javac -d bin *.java 

javac बनाने आउटपुट के लिए सही निर्देशिका संरचना।

क्या आप कुछ और परिष्कृत खोज रहे थे? यदि हां, तो क्या आप अधिक जानकारी दे सकते हैं (और आप किस प्लेटफॉर्म पर हैं)?

+0

धन्यवाद, यह काम करता है! – alex

+0

सभी उप और निर्णायक निर्देशिकाओं में सभी जावा फ़ाइलों के बारे में क्या? – Tom

+0

@ टॉम: यह पता लगाएं कि ऑपरेटिंग सिस्टम पर निर्भर करेगा। खोज का उपयोग करके यूनिक्स पर यह आसान है। विंडोज़ पर कठिन –

3

यहाँ एक कोड टुकड़ा है कि मैं एक पूरी परियोजना जहां, हमेशा की तरह, स्रोत फ़ाइलें एक गहरा नेस्टेड पदानुक्रम में हैं और कई .jar फ़ाइलें कि classpath में जाना होगा देखते हैं का निर्माण करने के लिए उपयोग (यूनिक्स उपयोगिताओं की आवश्यकता है):

CLASSPATH= 
for x in $(find | grep jar$); do CLASSPATH="$CLASSPATH:$x"; done 
SRC=$(find | grep java$) 
javac -cp "$CLASSPATH" $SRC 
9

फिर भी यूनिक्स पर का उपयोग कर "लगता है" एक और तरीका है यहाँ वर्णित है:

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 

पहले, findsources_list.txt, कि जावा स्रोत फ़ाइलों को पथ में शामिल है एक फ़ाइल उत्पन्न करता है। अगला, javac सिंटैक्स @sources_list.txt का उपयोग करके इन सभी स्रोतों को संकलित करता है।

+0

अपनी पोस्ट में सुधार करने पर विचार करें क्योंकि आपका उत्तर अनिवार्य रूप से एक लिंक है। देखें: [क्या उत्तर हैं कि वास्तव में कहीं और "अच्छे उत्तर" लिंक हैं?] (Http://meta.stackexchange.com/q/8231/156620) और [बुरा लिंक क्यों है?] (Http: //meta.stackexchange .com/q/7515/156620) –

+2

अच्छा समाधान। हालांकि आप अस्थायी फ़ाइल को/dev/stdin का उपयोग करके छोड़ दें। अर्थात। 'find ./src -name * .java | जावैक-क्लास्पाथ "$ {क्लासस्पैट}" @/dev/stdin' – Dunes