Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 用带有斜杠的字符串变量替换硬编码字符串_Java_Regex - Fatal编程技术网

Java 用带有斜杠的字符串变量替换硬编码字符串

Java 用带有斜杠的字符串变量替换硬编码字符串,java,regex,Java,Regex,我有以下代码,其中我试图用变量“dumppath”替换转储路径,该变量的字符与我在命令中的字符串中的字符完全相同,但当我用变量替换它时,它总是给我一个IOException,它说系统找不到指定的文件。但对于硬编码路径,它可以正常工作 public String dumppath = "C:\\wamp\\bin\\mysql\\mysql5.6.12\\bin\\mysqldump"; public void backupDatabase() {//GEN-FIRST:event_jButto

我有以下代码,其中我试图用变量“dumppath”替换转储路径,该变量的字符与我在命令中的字符串中的字符完全相同,但当我用变量替换它时,它总是给我一个IOException,它说系统找不到指定的文件。但对于硬编码路径,它可以正常工作

public String dumppath = "C:\\wamp\\bin\\mysql\\mysql5.6.12\\bin\\mysqldump";

public void backupDatabase() {//GEN-FIRST:event_jButton1ActionPerformed

        try {

            int processComplete; // to verify that either process completed or not

            //Process runtimeProcess = Runtime.getRuntime().exec("C:\\wamp\\bin\\mysql\\mysql5.6.12\\bin\\mysqldump -u root mysql -r F:/backup.sql");
            Process runtimeProcess = Runtime.getRuntime().exec("'"+dumppath+"' -u root mysql -r F:/backup.sql");
// call the mysqldump in terminal and execute it
            processComplete = runtimeProcess.waitFor();//store the state in variable

            if (processComplete == 1) {//if values equal 1 process failed

                JOptionPane.showMessageDialog(null, "Backup Failed");//display message
            } else if (processComplete == 0) {//if values equal 0 process failed
                System.out.println("Backup up : "+backuppath);
                System.out.println("Dump Path : "+dumppath);
                JOptionPane.showMessageDialog(null, "\n Backup created Successfully..\n Check the Backup File in the D: Directory named as backup.sql");
//display message
            }

        } catch (Exception e) {

            JOptionPane.showMessageDialog(null, e);//exeception handling

        }

// TODO add your handling code here:
    }
第一个调用在路径周围没有单引号

Process runtimeProcess = Runtime.getRuntime().exec( "'"+dumppath+"' -u root mysql -r F:/backup.sql");
第一个调用在路径周围没有单引号

Process runtimeProcess = Runtime.getRuntime().exec( "'"+dumppath+"' -u root mysql -r F:/backup.sql");

Process runtimeProcess = Runtime.getRuntime().exec(
 "'C:\\wamp\\bin\\mysql\\mysql5.6.12\\bin\\mysqldump' -u root mysql -r F:/backup.sql");
与硬编码字符串相比,它多了两个单引号

要获取原始字符串,应尝试以下操作

String dumppath = "C:\\wamp\\bin\\mysql\\mysql5.6.12\\bin\\mysqldump";
Process runtimeProcess = Runtime.getRuntime().exec( dumppath+" -u root mysql -r F:/backup.sql");

Process runtimeProcess = Runtime.getRuntime().exec(
 "'C:\\wamp\\bin\\mysql\\mysql5.6.12\\bin\\mysqldump' -u root mysql -r F:/backup.sql");
与硬编码字符串相比,它多了两个单引号

要获取原始字符串,应尝试以下操作

String dumppath = "C:\\wamp\\bin\\mysql\\mysql5.6.12\\bin\\mysqldump";
Process runtimeProcess = Runtime.getRuntime().exec( dumppath+" -u root mysql -r F:/backup.sql");


您的标题似乎暗示字符串不同。@Chieftwo Pencils什么解决方案您的标题似乎暗示字符串不同。@Chieftwo Pencils什么解决方案如果您不需要单引号,请删除它们。如果您不需要单引号,请删除它们。