如何在Java中获取包含文件名的项目文件路径?

时间:2016-06-14 20:08:29

标签: java path

所以我有一个java项目,我现在可以使用

获取文件的路径
String pathname = test.getClass().getProtectionDomain().getCodeSource().getLocation().getPath();

这是返回/ home / mrpickles / Desktop / HANSTUFF / securesdk / src,这是我文件的路径,名为" JavaWrapper.java"与班级" JavaTest"。我希望它返回的是" /home/mrpickles/Desktop/HANSTUFF/securesdk/src/JavaWrapper.java,以便路径包含文件名。我该怎么做?

1 个答案:

答案 0 :(得分:0)

实际上你不能。

您确实知道编译后.java个文件会转换为.class个文件,对吗?

唯一可以保留的是包结构。并且单个.java文件只能包含一个与.java文件名匹配的公共类,但它可以包含多个具有不同名称的类。

.java文件编译成.class文件后,您可以将它们保存在相同的包结构中,从而将它们移动到不同的位置。因此,您的来源.java位置可能与.class文件位置不同。

<强>更新

您可以打印基本的完整班级名称以及加载类文件的位置:

public class Test {
    public static void main(String[] args) {
        Test test =new Test();
        System.out.println("Class Name: "+test.getClass().getSimpleName());
        System.out.println("With Package Name: "+test.getClass().getName());
        System.out.println("Location: "+ClassLoader.getSystemResource("Test.class"));
    }
}

<强>输出:

Class Name: Test
With Package Name: com.test.Test
Location: file:/C:/workspace/Test-Project/build/classes/Test.class