假设我有像
这样的路径“的JBoss /服务器/默认/部署/ Product_071016.ear / Product_071016.war / WEB-INF /类/”
我想使用java读取此路径并在classes文件夹中创建一个新文件。硬编码不是一种选择,它需要具有适应性。
在此路径中Product_071016.ear
和Product_071016.war
名称更改(即日期,月份,年份附加在“_”之后)。
我怎么能这样做?
答案 0 :(得分:1)
根据您的要求,您可以选择一些选项,例如:
有一个配置文件,例如: paths.properties
其中包含每条动态变化的路径,作为每行中的key/value
对。您可以找到.properties
个文件here的格式。键是 CONSTANT 名称。每次路径更改时,都应该在 paths.properties 中更改赋值给此常量键的值。由于您可以使用Properties
中的java
对象加载此配置文件,因此您可以通过将{<1>} CONSTANT 键添加到Properties
来获取更改后的路径对象。 Properties
以某种方式定制Map
来处理.properties
个文件。
paths.properties 的内容可以是这样的:
PATH_TO_CLASSES_FOLDER=jboss/server/Default/deploy/Product_071016.ear/Product_071016.war/web-inf/classes/
因此,在使用key/values
对象从.properties
文件加载Properties
后,通过提供密钥PATH_TO_CLASSES_FOLDER
,您将获得存储在文件中的所需路径。 / p>
您可以在每个操作系统中设置System Variable
,然后您可以使用以下代码行在java中读取它的值:
String pathToClassesFolder = System.getenv("PATH_TO_CLASSES");
使用任何一种方法,您都没有对代码中的任何动态路径进行硬编码,并且实现了要求。即使您不想对配置文件的路径进行硬编码,也可以将两种方式结合起来:
将配置文件的路径定义为System Variable
读取配置文件的路径,然后通过Properties
对象加载它,并使用PATH_TO_CLASSES_FOLDER
键获取classes
文件夹路径。
祝你好运。