मुझे आश्चर्य है कि क्या कोई तरीका है कि मैं अपने जावा कोड से निष्पादित कर रहे ग्रोवी स्क्रिप्ट के लिए डिफ़ॉल्ट आउटपुट (System.out) बदल सकता हूं।ग्रोवी स्क्रिप्ट से आउटपुट को रीडायरेक्ट कैसे करें?
public void exec(File file, OutputStream output) throws Exception {
GroovyShell shell = new GroovyShell();
shell.evaluate(file);
}
और नमूना ग्रूवी स्क्रिप्ट:
यहाँ जावा कोड है
def name='World'
println "Hello $name!"
वर्तमान में विधि का निष्पादन, स्क्रिप्ट लिखते का मूल्यांकन करता है "नमस्ते दुनिया!" कंसोल (System.out) के लिए। मैं पैरामीटर के रूप में आउटपुटस्ट्रीम को आउटपुट पर रीडायरेक्ट कैसे कर सकता हूं?
यह काम करेगा, लेकिन मैं मानक आउटपुट में लिखे गए किसी भी * आउटपुट को रीडायरेक्ट करना चाहता हूं। खासकर अंतर्निहित कार्यों जैसे हमें println()। –
आप * के बारे में * सही थे। समाधान java.io.PrintStream आउटपुट int को लपेटना है और खोल के लिए "बाहर" संपत्ति के रूप में पास करना है! –
हाँ !, मेरा पहला कांस्य बैज! हैप्पी यह काम करता है! आपने आउटपुट को कैसे लपेट लिया? – jjchiw