gpt4 book ai didi

java - 获取依赖项中文件的正确路径

转载 作者:太空宇宙 更新时间:2023-11-04 10:08:37 24 4
gpt4 key购买 nike

我有一个java项目,它导入了我编写的模块。 Java 项目称为 cg-lambda,该模块称为 cg-corecg-core 作为 cg-lambda 中的依赖项导入,例如

dependencies {
...
compile 'com.cg:cg-core'
...
}

我在cg-core中有一个名为ApiConfiguration的类,它加载并解析yaml文件。

package com.cg.config.guice;

public class ApiConfiguration {

public static ApiConfiguration fromLocation() {

try {
String configurationLocation = "src/main/resources/configuration/env_local.yml";

final String absoluteFile = new File(configurationLocation).getAbsolutePath();
....
} catch (Exception e) {

}
}

....
}

yaml 文件位于 /Users/mark/repos/server-side/cg-core/src/main/resources/configuration/

我从 cg-lambda 中的类调用 ApiConfiguration.fromLocation():

import com.cg.config.guice.ApiConfiguration;

public class OrderHandler {
public OrderHandler() {
final ApiConfiguration apiConfiguration =
ApiConfiguration.fromLocation();

....
....

当我调试时,我看到absoluteFile/Users/mark/repos/server-side/cg-lambda/src/main/resources/configuration/env_local.yml

即路径是 cg-lambda,而不是 cg-core - 即使 ApiConfiguration 位于 cg-core 中。是否可以获得正确的路径?

最佳答案

由于资源将打包在您的 cg-core 模块中,因此当您的应用程序运行时,您提供的路径将不存在。

加载文件并获取绝对路径的正确方法是。

String configurationLocation = "configuration/env_local.yml";

final String absoluteFile = new File(ApiConfiguration.class.getClassLoader().getResource(configurationFileLocation).getFile()).getAbsolutePath();

关于java - 获取依赖项中文件的正确路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52628764/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com