我正在尝试以编程方式本地化属性文件,而无需 将命令行上的完整路径名传递给我的程序。我想如果我可以 找到主类的路径,我可以将我的属性文件粘贴在同一个路径中 目录或子目录。
如果这不起作用,是否有其他方法可以找到属性的路径 文件而不将其传递到命令行。
谢谢
最佳答案
如果文件预计相对于主类定位,则可以使用 Class.getResource()
或Class.getResourceAsStream()
如下:
class MainClass {
public static void main( String[] args ) {
URL props = MainClass.class.getResource( "foo.properties" );
// ...
}
}
它们将分别返回一个URL
或一个InputStream
; Properties.load()
过载它接受一个InputStream
。
您可以指定相对于类位置的子目录等路径,或者使用另一个类的 getResource() 方法来获取相对于该位置的文件。
如果你想计算相对于当前工作目录的路径(不一定与主类的父类相同),那么你可以使用以下方法来获取该路径:
String cwd = System.getProperty( "user.dir" );
System.getProperties()
的文档中有可用系统属性的列表。 .
关于java - 如何以编程方式找到主执行类的完整路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/740999/