Properties 从jar位置读取属性文件

Properties 从jar位置读取属性文件,properties,jar,executable,Properties,Jar,Executable,我有一个可执行的jar文件,它从属性文件中读取属性。我已经使程序正常工作,因此属性文件应该位于我执行jar的路径中[而不是位于放置jar的目录中] 我现在正在做这样的事情: Properties prop = new Properties(); try { InputStream stream = new FileInputStream("./sample.properties"); if (stream != null) {

我有一个可执行的jar文件,它从属性文件中读取属性。我已经使程序正常工作,因此属性文件应该位于我执行jar的路径中[而不是位于放置jar的目录中] 我现在正在做这样的事情:

Properties prop = new Properties();
    try {
        InputStream stream = new FileInputStream("./sample.properties");
            if (stream != null) {
                prop.load(stream);
                    }
        }

这似乎工作正常。如果我想从jar所在的目录中读取文件,我不知道该怎么办。有人能帮我吗?我试图删除“/”但仍然不起作用

包含类X的JAR文件的位置由X.class.getProtectionDomain().getCodeSource().getLocation()给出

它给出了一个url类型的对象,我可以在其中调用方法gethost、getpath,但这些方法给出了完整的jar路径,而不是jar存在的路径。您必须找出如何删除路径的最后一位。这并不难。在JDK中有几种方法可以提供帮助。