में जावैक आउटपुट कैप्चर करने का प्रयास कर रहा हूं, मैं जावा कंपाइलर आउटपुट को फ़ाइल में रीडायरेक्ट करने का प्रयास कर रहा हूं। मैंने सोचा कि यह होना चाहिए था:बैश खोल
javac file.java > log.txt
या कुछ और। इसके बजाय, मैं टर्मिनल पर सभी आउटपुट और log.txt में कुछ भी नहीं देखता हूं!
इसके अलावा, अगर मैं भी त्रुटियों प्रवेश करना चाहते हैं, मैं
javac file.java 2>&1 > log.txt
करते हैं?
मुझे लगता है कि रीडरिंग stderr मुझे आउटपुट देता है जो मुझे चाहिए। सब कुछ stderr में लॉग इन क्यों है और stdout में कुछ भी नहीं है? साथ ही, क्या आप मुझे बता सकते हैं कि javac file.java 2> & 1> log.txt काम नहीं करता है? – jcee14
पुनर्निर्देशन बाएं से दाएं हैंडल किए जाते हैं। 2> और 1 उस स्थान पर stderr भेजता है जहां वर्तमान में stdout चल रहा है - टर्मिनल। फिर> log.txt stdout को log.txt पर भेजता है, जो मूल stdout पर stderr लेखन छोड़ देता है। यदि आपने> log.txt 2> & 1 लिखा है, तो सभी आउटपुट फ़ाइल पर जाएंगे। –
यदि आपको पता था कि यह भी काम करता है तो आपको बोनस अंक प्राप्त होते हैं:> log.txt javac 2> और 1 file.java –