Win7 সমস্যা জাভা কোড থেকে মাইএসকিউএল mysqldump

ঠিক আছে, আমার জাভা অ্যাপ্লিকেশন উইন্ডোর রানটাইম এনভরুমেন্ট ব্যবহার করে একটি মাইএসকিউন্ডপ ব্যাকআপ করতে সক্ষম নয়। ধরা ধরা ব্যতিক্রমগুলির জন্য আমি প্রিন্ট কোড পেয়েছি এবং আমাকে কোনও ব্যতিক্রম দেখানো হচ্ছে না, যখন ব্যাকআপ কোড কার্যকর করা হয় তখন পৃষ্ঠে জরিমানা দেখায়।

আমি কমান্ড লাইন কনসোলে mysqldump কমান্ডটি পরীক্ষা করেছি; এবং এটি সেখানে কোন সমস্যা সঙ্গে কাজ করে।

কোড:

Runtime rt = Runtime.getRuntime();
try {
    Process pr = rt.exec("mysqldump -u test --password=pass lager > newBackup.sql");

} catch (IOException ex) {
     System.out.println("IO error Runtime.  "+ex.getMessage());
}

কেউ জানেন না কেন এটি ডাম্প/ব্যাকআপ ডেটাবেস করবে না? আমি কিছু যোগ বা কিছু (জানালা 7 চলমান) প্রয়োজন কিছু আছে?

0
যোগ সম্পাদিত
মতামত: 1
জিনিস Thats, এটা কোন ব্যতিক্রম না নিক্ষেপ করা হয়। এটি ব্যবহার করার সময় আমি ভুল কমান্ড পেয়েছিলাম বা প্যাসিভ ভ্যারিয়েবল হিসাবে mysqldump পাইনি। শুধু কোন ফাইল outputted হচ্ছে, এবং কোন প্রতিক্রিয়া আছে কেন আমি জানি না।
যোগ লেখক gorn, উৎস
আপনি মুদ্রণ করছেন ex.getMessage() কিন্তু আপনি কি বলছেন তা আমাদের বলছে না?
যোগ লেখক Radu Murzea, উৎস

1 উত্তর

হতে পারে আপনি এই নিবন্ধটি দেখুন পার্থক্য beetwen exec এবং কমান্ড লাইন সম্পর্কে ( http://www.javaworld.com/article/2071275/core-java/when-runtime-exec---won-t.html )।

আমার পাশে আমি এই কোডটি চেষ্টা করি যা আমার স্টাডিগগলের সাথে mysqldump --help কমান্ডের আউটপুটটি ক্যাপচার করতে কাজ করে যা জাভাওয়ার্ড থেকে নিবন্ধটি খুঁজে পায়:

    public Main() {
    try {
        FileOutputStream fos = new FileOutputStream("c:/tmp/test.txt");
        Runtime rt = Runtime.getRuntime();
        Process proc = rt.exec("mysqldump --help");
       //any error message?
        StreamGobbler errorGobbler = new StreamGobbler(
                proc.getErrorStream(), "ERROR");

        StreamGobbler outputGobbler = new StreamGobbler(
                proc.getInputStream(), "OUTPUT", fos);

        errorGobbler.start();
        outputGobbler.start();

        int exitVal = proc.waitFor();
        System.out.println("ExitValue: " + exitVal);
        fos.flush();
        fos.close();
    } catch (Throwable t) {
        t.printStackTrace();
    }
}
0
যোগ