में एक बैश खोल स्क्रिप्ट चलाना मैं नीचे अपने कार्यक्रम से एक शेल स्क्रिप्ट चलाने के लिए चाहता हूं लेकिन ऐसा कुछ नहीं लगता है। मैंने लिनक्स टर्मिनल में सीधे वही आदेश चलाया है और यह ठीक काम करता है इसलिए मुझे लगता है कि यह मेरा जावा कोड है। जैसा कि आप देख सकते हैं, मैं पहले प्रिंटवाइटर का उपयोग करके शेल स्क्रिप्ट को कमांड लिख रहा था, लेकिन मुझे उम्मीद है कि इससे शेल स्क्रिप्ट के चलते ही प्रभावित नहीं होगा। किसी भी सहायता की सराहना की जाएगी!जावा
public static void main(String[] args) {
// TODO Auto-generated method stub
String nfdump = "nfdump -o csv -r /home/shane/Documents/nfdump/nfcapd.201211211526>blank.txt";
try {
FileWriter fw = new FileWriter("/home/shane/Documents/script.sh");
PrintWriter pw = new PrintWriter(fw);
pw.println("#!/bin/bash");
pw.println(nfdump);
pw.close();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
Process proc = null;
try {
proc = Runtime.getRuntime().exec("sh /home/shane/Documents/script.sh");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Runtime.getRuntime के बजाय ProcessBuilder() पर एक नज़र डालें ... जब मैं इस का उपयोग मैं कम समस्याओं है लगता है और चीजों को थोड़ा अधिक undestandable – RNJ
जिज्ञासु दिखाई कारण है कि आप सीधे 'क्रियान्वित नहीं कर रहे हैं –
nfdump' मैं अपने जीयूआई से एनएफडम्प का उपयोग करने में सक्षम होना चाहता हूं, यह उस सॉफ्टवेयर का हिस्सा है जिसका मैं निर्माण कर रहा हूं – Shane