请问如何设置我的java程序中使用的变量,不用担心,因为当前我必须在Windows机器上本地运行我的代码。
所以我正在阅读的整个文件都在windows d://目录下,考虑从windows D驱动器中读取和写入不同位置的文件。 根据我的业务逻辑。
我在CentOS服务器端使用的目录结构相同。但问题是在CentOS目录下以/ home / dir1 /开头,所以一个人,所以谁做这个东西工作。 就像每次我构建我的jar以便部署到服务器端一样。我必须根据Windows或CentOS更改这些变量名称。
你有没有其他简单的方法,因为在测试的很多时候我忘记在Windows上测试和在服务器端部署之前更改这些目录。
非常感谢您提供任何帮助或任何可以指导我实现这一目标的链接。
答案 0 :(得分:0)
不要对类中的路径进行硬编码,而是将配置外部化。有很多选择。
使用系统属性传递路径:
java -Dfile.location=/home/dir1/ -jar jarfile.jar
在程序中,您可以使用该属性:
File directory = new File(System.getProperty("file.location");
如果在jar中的类中运行main方法,则传递程序参数:
java -jar jarfile.jar "D:/directory"
然后可以在主程序中阅读
public static void main(String[] args) {
File directory = new File(System.getProperty(args[0]);
//... rest of the program
还有许多其他选项,包括属性文件,环境变量,JNDI,所有这些都取决于您的运行时环境。