我们一直在使用System.getProperties(“ user.dir”)来获取属性文件的位置。现在已经将它部署在Tomcat上(通过servlet),系统调用将位置指定为tomcat,而不是属性文件所在的位置。
我们如何动态调用属性文件?
鉴于:
您必须有一种方法来了解属性文件的路径,然后可以将其包装到File中并传递给属性对象的load()方法。
如果您在Tomcat服务中运行,则不会以安装该服务的用户身份运行,因此无法派生主目录。然后,您很可能需要对某些内容进行硬编码。
编辑:属性文件是相对于应用程序。有关如何获取给定类的字节码的文件名的示例,请参见http://www.exampledepot.com/egs/java.lang/ClassOrigin.html。您应该可以从那里继续。
Class cls = this.getClass(); ProtectionDomain pDomain = cls.getProtectionDomain(); CodeSource cSource = pDomain.getCodeSource(); URL loc = cSource.getLocation(); // file:/c:/almanac14/examples/
您应该意识到某些安全管理器不允许这样做。