त्वरित उत्तराधिकार में एक और सवाल है लेकिन यह वास्तव में एक स्पष्ट त्रुटि होना है जिसे मैं नहीं देख रहा हूं। मैंने नीचे एक बैच फ़ाइल चलाने के लिए कुछ कोड लिखा है लेकिन मुझे एक त्रुटि संदेश मिल रहा है जिसमें कहा गया है कि यह फ़ाइल नहीं ढूंढ पा रहा है लेकिन मैं आपको आश्वस्त कर सकता हूं कि फ़ाइल निर्देशिका में मौजूद है!Processbuilder फ़ाइल नहीं ढूंढ सकता है ?!
public class Pull {
public void pullData() throws IOException {
ProcessBuilder pb = new ProcessBuilder("adb.bat");
File f = new File("C:\\");
pb.directory(f);
Process p = pb.start();
}
public static void main(String[] args) throws IOException {
Pull pull = new Pull();
pull.pullData();
}
}
और यहाँ त्रुटि संदेश
Exception in thread "main" java.io.IOException: Cannot run program "adb.bat" (in directory "C:\"): CreateProcess error=2, The system cannot find the file specified
तो, adb.bat c: \ है, है ना? प्रोजेक्ट फ़ोल्डर – keyser
में इसे रखने या इसकी प्रतिलिपि बनाने का प्रयास करें या तो वहां काम नहीं करता है। क्या मैं प्रक्रियाबिल्डर का सही ढंग से उपयोग कर रहा हूं? – Rookie
क्या आपने बैच फ़ाइल की सामग्री को अपने 'प्रोसेसबिल्डर' के तर्क के रूप में निष्पादित करने का प्रयास किया है? उदाहरण के लिए, अगर "adb.bat" कुछ "जावा-वर्जन" जैसा करता है, तो क्या आपने 'नया प्रोसेसबिल्डर ("जावा", "- सर्वर") जैसे कुछ करने की कोशिश की है? मैं सोच रहा हूं कि जावा adb.bat को निष्पादन योग्य की तरह व्यवहार करने का प्रयास कर रहा है, भले ही यह वास्तव में केवल एक टेक्स्ट-आधारित स्क्रिप्ट है। – CodeBlind