0

我正在尝试使用类路径访问文件,如下所示:

String path = getClass().getProtectionDomain().getCodeSource()
            .getLocation().toString();
    File test = new File(path);
    File table = new File(test, "testFile.xlsx");

我这样做是因为我需要创建一个 Jar,如果它在同一个文件夹中,它将读取和写入该文件。

我收到此错误:

java.io.FileNotFoundException:  "myFilepath" (The filename, directory name, or volume label syntax is incorrect)

如果我将 myFilepath 复制并粘贴到文件浏览器中,它会显示我的文件。有人看到我做错了什么,或者我可以改进我的方法吗?

4

2 回答 2

1

与其尝试获取类路径名,不如创建一个 File 对象,然后使用 getAbsolutePath() 方法获取其绝对路径。这将给出运行代码的源文件的路径。

请尝试以下代码:-

 java.io.File f = new java.io.File("H");
        String path;
        path = f.getAbsolutePath();
        path = path.substring(0, (path.length() - f.getName().length()));
        f.deleteOnExit();

然后字符串路径将包含您的类文件目录路径。

于 2013-07-18T20:36:49.563 回答
0

您无法访问类路径中的文件,但您可以从类路径中获取资源流并从中读取内容。你需要看看这个答案https://stackoverflow.com/a/1464366/39998

于 2013-07-18T20:36:12.670 回答