我正在研究一个项目,我遇到了问题。 我需要在cmnd提示符下运行.jar,我需要将.properties文件的路径放入参数中,例如:
java -jar myproject.jar C:\path\to\config.properties
现在我有一个文件satatic的路径
FileInputStream in = new FileInputStream("config\\crdb.properties");
我需要以某种方式放置变量而不是静态路径并使用参数进行更改。
谢谢。
答案 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")