2011-08-04 11 views
6

मैं एक जार जो अगर मैं कमांड लाइन से चलाने के लिए मुझे देता है एक सही या गलत सांत्वनाजार से सांत्वना उत्पादन ग # में हो रही

मैं ग # से चलाने के लिए और परिणाम प्राप्त करने के लिए कोशिश कर रहा हूँ करने के लिए मुद्रित है इस

Process p = new Process(); 
p.StartInfo = new ProcessStartInfo("java", @"-jar test.jar " + paramterForStringArgs[0]); 
p.StartInfo.RedirectStandardOutput = true; 
p.StartInfo.UseShellExecute = false; 
p.Start(); 
String s = p.StandardOutput.ReadToEnd(); 
p.WaitForExit(); 
Trace.WriteLine("data = " + s); 
return false; 

की तरह किया जा रहा है मैं हमेशा एक खाली स्ट्रिंग हो रही होने लगते हैं और क्यों यह हो सकता है सोच रहा था, या अगर कोई यह करने का एक बेहतर तरीका था?

+1

"java.exe -version" कमांड के साथ ऐसा करने का प्रयास करें और देखें कि यह पहले काम करता है या नहीं। – djangofan

+4

आपको RedirectStandardError सेट करने और p.StandardError.ReadToEnd() को कॉल करने की भी आवश्यकता हो सकती है। – jonathanpeppers

+1

स्टडरर स्ट्रीम पर रीडायरेक्ट करने से मुझे त्रुटि देखने की इजाजत मिली कि जार पहुंच योग्य नहीं था। मैं प्रतिलिपि बनाने के लिए आउटपुट निर्देशिका में प्रतिलिपि सेट करना भूल गया था - अगर मैं हर समय बर्बाद कर देता हूं। क्षमा करें - लेकिन यह काम करता है - yay :) – James

उत्तर

5

RedirectStandardError सेट करना और p.StandardError.ReadToEnd() पर कॉल करना प्रक्रिया से कोई त्रुटि आउटपुट पढ़ता है।

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