से पैरामीटर के साथ खोल-स्क्रिप्ट निष्पादित करना मैं कुछ समय के लिए googling रहा है, और हर कोई एक अलग समाधान लगता है, जिनमें से कोई भी मेरे लिए काम नहीं कर रहा है।जावा
मैंने ProcessBuilder
और Runtime
दोनों की कोशिश की है। दोनों .sh
फ़ाइल को सीधे कॉल करते हैं और इसे /bin/bash
पर खिलाते हैं। कोई भाग्य के साथ।
मूल बातें पर वापस, मेरा वर्तमान कोड निम्नानुसार है;
String cmd[] = { "~/path/to/shellscript.sh", "foo", "bar" };
Process p = Runtime.getRuntime().exec(cmd);
जो एक No such file or directory
त्रुटि दे रहा है, कि मैन्युअल चल बावजूद;
~/path/to/shellscript.sh foo bar
पूरी तरह से बैश से काम करता है।
मुझे ~
रखने की आवश्यकता है क्योंकि यह शेलस्क्रिप्ट तीन अलग-अलग उपयोगकर्ताओं के लिए थोड़ा अलग रूपों में मौजूद है।
आह, है '~' के कारण समस्याओं आपको लगता है कि होने की संभावना? क्या जावा नहीं जानता कि सिस्टम कॉल के लिए इस तरह के पथ को कैसे पास किया जाए? – lynks
हां, सबसे अधिक संभावना ~ कारण है। यदि आपके द्वारा सुझाए गए अनुसार उपयोगकर्ता प्रति लिपि एक ही सापेक्ष पथ में उसी निर्देशिका में है, या प्रति उपयोगकर्ता कॉन्फ़िगर किया गया पथ है, तो उपर्युक्त सुझाव हो सकता है। –
दूसरा सुझाव पूरी तरह से काम किया, धन्यवाद। मैंने '~' – lynks