首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何以编程方式找到主执行类的完整路径

如何以编程方式找到主执行类的完整路径
EN

Stack Overflow用户
提问于 2009-04-11 23:50:43
回答 2查看 1.4K关注 0票数 2

我正在尝试以编程方式本地化一个属性文件,而不必在命令行上将它的完整路径名传递给我的程序。我想,如果我能找到主类的路径,我就能把我的属性文件放在同一目录或子目录中。

如果这不起作用,有没有其他方法可以找到属性文件的路径,而不是在命令行中传递它。

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-04-12 00:01:41

如果期望文件位于相对于主类的位置,则可以使用Class.getResource()Class.getResourceAsStream(),如下所示:

代码语言:javascript
运行
复制
class MainClass {
    public static void main( String[] args ) {
        URL props = MainClass.class.getResource( "foo.properties" );
        // ...
    }
}

这两个函数将分别返回一个URL或一个InputStream;对于接受InputStreamProperties.load(),有一个重载。

您可以指定子目录中相对于类位置的路径等,或者在另一个类上使用getResource()方法来获取相对于该位置的文件。

如果要计算相对于当前工作目录的路径(不一定与主类的父类相同),则可以使用以下命令来获取该路径:

代码语言:javascript
运行
复制
String cwd = System.getProperty( "user.dir" );

System.getProperties()的文档中有一个可用的系统属性列表。

票数 8
EN

Stack Overflow用户

发布于 2009-04-12 09:20:29

您可以使用use the ClassLoader to locate the application directory,但是作为Rob says,直接从类路径加载属性文件会更好。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/740999

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档