我正在尝试使用类路径访问文件,如下所示:
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,则会显示我的文件。有人看到我做错了什么,或者我可以改进我的方法?
答案 0 :(得分:1)
不是尝试获取类路径名,而是使用getAbsolutePath()方法创建File对象,然后获取其绝对路径。这将给出运行代码的源文件的路径。
请尝试以下代码: -
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();
其中字符串路径将包含您的类文件目录路径。
答案 1 :(得分:0)
您无法访问类路径中的文件,但您可以从类路径获取资源流并从中读取内容。您需要查看此答案https://stackoverflow.com/a/1464366/39998