gpt4 book ai didi

java - 使用 GlassFish 的 Web 应用程序中的文件路径

转载 作者:行者123 更新时间:2023-11-30 06:39:11 27 4
gpt4 key购买 nike

我正在使用一个类来获取源文件夹下的属性文件。但它不起作用!检查后发现默认路径是用

File f = new File("/src/ss.properties");

不是 Web 应用程序路径,而是 glassfish 配置路径!如果我想获取存储在“classes”路径下的属性文件怎么办?通常默认路径是项目路径,你知道的。

我使用了 ClassLoader.getResourceAsStream("sss") 。但它返回 null!我确定文件名是正确的,因为我已经在另一个简单的 Java 应用程序中尝试过。

更新:使用

this.getClass().getClassLoader().getResourceAsStream("sectionMapping.properties");

代替

ClassLoader.getSystemResource("sectionMapping.properties")

成功了!我想知道为什么?

最佳答案

您应该使用 getResourceAsStream 或类似的方法。参见 this post如何访问资源。 (这独立于 Glassfish - 它适用于所有 Java EE 应用服务器。)

另见 this JavaWorld article .

更新:如果您的文件位于src/ss.properties 位置,请检查它是否已复制到WEB-INF/classes。然后,您应该可以使用以下代码访问它:

InputStream propStream = ClassLoader.getResourceAsStream("ss.properties");

或(如果使用 java.lang.Class 中的方法,请注意前导斜线)

InputStream propStream = Class.getResourceAsStream("/ss.properties");

请注意,需要使用完整的文件名(包括.properties 扩展名)。

如果这些都不起作用,请将 getResourceAsStream 调用替换为 getResource(...).openStream() 并发布应该抛出的异常的详细信息。

关于java - 使用 GlassFish 的 Web 应用程序中的文件路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1341518/

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