如何在java中获取动态路径

时间:2016-06-22 10:26:04

标签: java

String s = "cmd /c " + GeneralMethods.getFilesPath()
            + "mysql-5.6.26-winx64/bin/mysqldump -u root -password database_name>" + GeneralMethods.getFilesPath()
            + "backup/backup.sql";

我不想要静态代码 我想在java上选择动态路径。

1 个答案:

答案 0 :(得分:0)

如果从main方法运行代码,则将变量作为程序参数传递。在方法中读取这些参数并创建路径。

例如

class Test {
    public static void main(String[] args) {
    String s = "cmd /c " + GeneralMethods.getFilesPath() + args[0] +  "-u   root -password database_name>" + GeneralMethods.getFilesPath() + args[1];
}
}

对于任何应用程序,都可以使用VM参数。

 String s = "cmd /c " + GeneralMethods.getFilesPath() + System.getProperty("sysProp1") +  "-u   root -password database_name>" + GeneralMethods.getFilesPath() + System.getProperty("sysProp2");

启动服务器/应用程序时,可以使用-DsysProp1 = value1 -DsysProp2 = value2设置这些变量sysProp1sysProp2

或者如果应用程序中的多个位置需要它们

创建一个类来保存这些值

public class HolderClass {
     public static String value1 = null;
     public static String value2 = null;
}

现在,在这些值可用的方法中(例如在main方法中),设置值

HolderClass.value1 = "value received"
HolderClass.value2 = "Other value received"

在需要此值时,请使用

 String s = "cmd /c " + GeneralMethods.getFilesPath() + HolderClass.value1 +  "-u   root -password database_name>" + GeneralMethods.getFilesPath() + HolderClass.value2;