Java Can';在类路径上找不到属性文件

Java Can';在类路径上找不到属性文件,java,properties,glassfish,classpath,Java,Properties,Glassfish,Classpath,我正在尝试加载/读取glassfish 3.1服务器上的属性文件。 我不能让它工作。我搜索并尝试了许多可能的解决方案。 到目前为止没有一个有效,结果总是空的 我尝试了以下链接中的方法: 我的方法: final public class GTS_Properties{ ... public static Properties getPropertiesFromFile(String fileName){ URL url = GTS_Properties.class.getR

我正在尝试加载/读取glassfish 3.1服务器上的属性文件。 我不能让它工作。我搜索并尝试了许多可能的解决方案。 到目前为止没有一个有效,结果总是空的

我尝试了以下链接中的方法:

我的方法:

final public class GTS_Properties{

...

   public static Properties getPropertiesFromFile(String fileName){
      URL url = GTS_Properties.class.getResource(fileName)
      ...
      // url is always null
   }
}
我的配置: 生成路径上的文件夹属性

/root/WEB-INF/classes/**.properties

Glassfish服务器的外观(使用eclipse启动插件)

/glassfish root/domain/eclipseApps/MyWebApp/WEB-INF/classes/**.properties


我尝试将属性文件直接放入WEB-INF而不是类中。同样的结果。

我首先从相对路径的起始点向上移动两个“父文件夹”,解决了这个问题。 只需在路径的开头插入“./../”即可

WEB-INF/classes/WebApp/utils/GTS_Properties.class(从中获取资源的类) WEB-INF/classes/prop.properties(资源文件的位置)


如果不指定用于加载资源的路径,则很难为您提供帮助。请注意,路径会有所不同,这取决于您将哪个类用作加载资源的上下文。您是指我试图从中打开资源的类的相对路径吗?在我的例子中:WEB-INF/classes/WebApp/utils/GTS_Properties.class和:WEB-INF/classes/**.Properties我应该使用像GTS_Properties.class.getResource(“../../”+文件名)这样的路径好的,这是有效的。谢谢您使用的确切文件名是什么?你的财产档案在哪里?GTS_Properties的包是什么?@WvdL-当您使用特定类加载资源时,将相对于该类指定资源路径。但是,如果要使用线程的上下文类加载器(
thread.currentThread().getContextClassLoader().getResource
),则资源路径是相对于类路径的根指定的。要记住好的规则,尽管你似乎已经解决了这个问题?是的,它现在起作用了。我使用类作为起点来创建属性文件的路径。我一直认为我必须使用类路径的根作为起点。谢谢你澄清这个问题。
GTS_Properties.class.getResource("../../prop.properties")