2013-02-28 3 views
5

मुझे अपने प्रोग्राम को संकलित करने में सक्षम होना चाहिए, फिर इसे अलग-अलग .txt फ़ाइल के साथ 3 अलग-अलग बार निष्पादित करें, प्रत्येक बार पहली कमांड लाइन तर्क के रूप में, और यह सब एक "मेक" कमांड के साथ किया जाना चाहिए।मैं मेकफ़ाइल कैसे बना सकता हूं जो कमांड लाइन तर्कों के साथ जावा कोड संकलित और चलाएगा?

javac MainDriver.java FSA.java State.java Transition.java 
java MainDriver test1.txt 
java MainDriver test2.txt 
java MainDriver test3.txt 

यहाँ मैं वर्तमान में क्या है:

JC = javac 
JCR = java 

.SUFFIXES: .java .class 
.java.class: 
    $(JC) $*.java 

CLASSES = \ 
    MainDriver.java \ 
    FSA.java \ 
    State.java \ 
    Transition.java 

default: classes 

classes: $(CLASSES:.java=.class) 

clean: 
    $(RM) *.class *~ 
+0

आप के बजाय बनाने की अपाचे चींटी उपयोग करने पर विचार करेंगे कि क्या के लिए संबंधित टर्मिनल आदेशों मैं अपने Makefile क्या करना चाहते हैं इस प्रकार हैं? – beny23

उत्तर

2
JC = javac 
JCR = java 

.SUFFIXES: .java .class 
.java.class: 
    $(JC) $*.java 

CLASSES = \ 
    MainDriver.java \ 
    FSA.java \ 
    State.java \ 
    Transition.java 

TXT_FILES = \ 
    test1.txt \ 
    test2.txt \ 
    test3.txt \ 

default: classes exec-tests 

classes: $(CLASSES:.java=.class) 

clean: 
    $(RM) *.class *~ 

exec-tests: classes 
    set -e; \ 
    for file in $(TXT_FILES); do $(JCR) MainDriver $$file; done; 


.PHONY: default clean classes exec-tests 
+0

मैं इस का उपयोग कर की कोशिश की और प्रत्येक परीक्षा के लिए निम्न त्रुटि मिल गया: सूत्र में 'अपवाद" मुख्य "java.lang.NoClassDefFoundError: test1/txt की वजह से: java.lang.ClassNotFoundException: test1.txt \t पर java.net $ 1.run (URLClassLoader.java:202) \t java.security.AccessController.doPrivileged (मूल निवासी विधि) \t पर java.net.URLClassLoader.findClass (URLClassLoader.java:190) पर \t java.lang पर .URLClassLoader। ClassLoader.loadClass (ClassLoader.java:306) \t sun.misc.Launcher $ AppClassLoader.loadClass (Launcher.java:301) पर \t java.lang.ClassLoader.loadClass (ClassLoader.java:247) में ' – soccercta100

+1

ओप्स वास्तविक बाइनरी से चूक गए। जवाब अद्यतन किया है। मैं यह भी मानता हूं कि आप सभी टेक्स्ट फ़ाइलों के साथ सभी बाइनरी चलाने के लिए चाहते हैं। क्या वो सही है ? – Tuxdude

+1

ने एक सेट-ए भी जोड़ा, ताकि यह पहली त्रुटि पर रुक जाए। यदि आप उस व्यवहार को नहीं चाहते हैं तो उस रेखा को हटा दें। – Tuxdude

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

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