2010-08-05 14 views
26

मैं एक मेकफ़ाइल लिख रहा हूं जो एक अलग निर्देशिका में .java फ़ाइल को संकलित करता है, और फिर मैं निर्देशिकाओं को बदलने के बिना इसे चलाने के लिए चाहता हूं।मैं जावा क्लास को एक अलग निर्देशिका में कैसे संकलित और चला सकता हूं?

$(SQM_JAVA_TOOL_DONE) : $(SQM_JAVA_TOOL) 
     $(shell cd /home_dir) 
     javac myjavafile.java 
     java myjavafile 

जहां जावा फ़ाइल /home/myjavafile.java है, और makefile /home से नहीं चल रहा है: मैं की तर्ज पर कुछ करना चाहता हूँ।

मैं यह कैसे कर सकता हूं?

+1

आप अपनी जावा फाइलों को संकलित करने के लिए एंटी स्क्रिप्ट क्यों नहीं बनाते हैं और चींटी build.xml पर पूरा पथ क्यों पारित करते हैं? –

उत्तर

32

मैं सवाल गलत समझ रहा हो सकता है, लेकिन आप

javac /home/MyJavaFile.java 

साथ संकलन कर सकते हैं यह बनाएगा /home में MyJavaFile.class

फिर आप classpath पर /home शामिल करके इसे चला सकते हैं। जैसे

java -cp /home MyJavaFile 

आप एक अलग निर्देशिका में वर्ग फ़ाइल उत्पन्न करने के लिए चाहते हैं तो आपको javac को -d विकल्प का उपयोग कर सकते हैं।

+1

मैंने 'जावा-सीपी' की कोशिश की।: Lib/dropbox-core-sdk-1.7.5.jar: lib/jackson-core-2.2.3.jar: lib/javax.mail.jar "/ bin Client1', लेकिन लिंकर बाहर निकलता है: 'त्रुटि: मुख्य वर्ग .bin' नहीं मिला या लोड नहीं किया जा सका। – Andrei

32

उपयोग javac साथ -d कमांड लाइन पैरामीटर कार्यक्रम चलाने के लिए यह बताने के लिए आप में संकलित वर्ग फ़ाइलों को स्टोर करना चाहते हैं निर्देशिका फिर, बस classpath में इस निर्देशिका में शामिल हैं:।

javac -d some/directory myjavafile.java 
java -cp some/directory myjavafile 
संबंधित मुद्दे