如何在Java args中添加文件路径

时间:2018-03-05 09:55:22

标签: java command-line jar args

我正在研究一个项目,我遇到了问题。 我需要在cmnd提示符下运行.jar,我需要将.properties文件的路径放入参数中,例如:

java -jar myproject.jar C:\path\to\config.properties

现在我有一个文件satatic的路径

FileInputStream in = new FileInputStream("config\\crdb.properties");

我需要以某种方式放置变量而不是静态路径并使用参数进行更改。

谢谢。

3 个答案:

答案 0 :(得分:1)

使用-D来放置系统变量并使用System.getProperty来获取它:

  java -Dpath.properties=C:\path\to\config.properties -jar myproject.jar 
String pathProp= System.getProperty("path.properties");
FileInputStream in = new FileInputStream(pathProp);

答案 1 :(得分:0)

只需使用args数组:

public static void main(String args[]) {
   try (FileInputStream in = new FileInputStream(args[0])) {
     // do stuff..
   }
}

答案 2 :(得分:0)

如果从main方法读取属性文件,只需通过--map-by数组args[]简单访问命令行参数,如下所示的简单代码

public static void main(String args[])

或者您可以将路径作为public static void main(String[] args) { String splitChar="="; try { Map<String, String> propertyList = Files.readAllLines(Paths.get(args[0])) .stream() .map(String.class::cast) .collect(Collectors.toMap(line -> line.split(splitChar)[0], line -> line.split(splitChar)[1])); System.out.println(propertyList); } catch (IOException e) { e.printStackTrace(); } }

传递
  

java -Dfile.path = {配置文件的路径} {JavaClassFile执行}

您可以获得如下所示的路径(来自代码中的任何位置)

vm option

与上面的主要方法相同,您可以阅读属性文件并将其放入我更喜欢的System.getProperty("file.path")