如何获取当前文件的完整路径,包括java中的src文件

时间:2013-09-17 09:39:36

标签: java eclipse

我有一个dateTesting.java文件。路径的目录如下:D:\ workspace \ Project1 \ src \ dateTesting.java。我希望此文件的完整路径为“D:\ workspace \ Project1 \ src”本身,但是当我使用以下任何代码时,我只得到“D:\ workspace \ Project1”。 src部分没有来。

System.out.println(System.getProperty("user.dir"));
File dir2 = new File(".");
System.out.println(dir2.getCanonicalPath().toString());
System.out.println(dir2.getAbsolutePath());

如何将完整路径设为“D:\ workspace \ Project1 \ src”?我正在使用eclipse ide 3.5

谢谢

5 个答案:

答案 0 :(得分:0)

dateTesting.java是一个Java源文件,在编译为字节码后不可用。它所在的源目录也不可用。

dir2是您执行File文件的目录的.class。它发现这恰好是D:\workspace\Project1,但您不能依赖此。

答案 1 :(得分:0)

您的dir2指向工作目录(new File("."))。您无法通过这种方式获取源的位置。您的文件可能位于包内(例如your.company.date.dateTesting)。您应该手动将“src”连接到当前工作目录,然后用.替换文件包点(File.pathSeparator)。这样,您将构建文件的完整路径。

答案 2 :(得分:0)

String fullFilePath = "H:\\Shared\\Testing\\abcd.bmp";
    File file = new File(fullFilePath);

    String filePath = file.getAbsolutePath().substring(0,fullFilePath.lastIndexOf(File.separator));
    System.out.println(filePath);

输出: H:\共享\测试

答案 3 :(得分:0)

如果您这样做是为了尝试从类路径中读取文件,那么请查看以下答案: How to really read text file from classpath in Java

基本上你可以这样做

InputStream in = this.getClass().getClassLoader()
                            .getResourceAsStream("SomeTextFile.txt");

否则,如果您有其他要求,一个选项是在应用程序开始时将src目录作为JVM arg传递,然后再将其读回。

答案 4 :(得分:0)

/** The actual file running */
public static final File    JAR_FILE = new File(MyClass.class.getProtectionDomain().getCodeSource().getLocation().getPath();

/** The path to the main folder where the file .jar is run */
public static final String  BASE_DIRECTORY  = (JAR_FILE != null ? JAR_FILE.getAbsolutePath().replace(JAR_FILE.getName(), "") : "notFound");

这对普通的java执行和jar执行都有效。这是我在项目中使用的解决方案。