【发布时间】:2016-09-01 21:50:29
【问题描述】:
我的问题是getAbsolutePath 忽略了我要查找的文件周围的某些文件夹。我要做的是仅使用文件名获取文件的文件路径。这是我正在使用的代码:
import java.awt.Desktop;
import java.io.File;
import java.io.IOException;
public class OpenFile {
public static void main(String[] args) throws IOException{
File file = new File("Point.java");
String path = file.getCanonicalPath();
try {
Desktop.getDesktop().open(new File(path));
} catch(IOException e) {
System.out.println("not work");
}
}
}
我收到此错误:
Exception in thread "main" java.lang.IllegalArgumentException: The file: /Users/default/Desktop/Eclipse/TreeThing/Point.java doesn't exist.
at java.awt.Desktop.checkFileValidation(Desktop.java:210)
at java.awt.Desktop.open(Desktop.java:270)
at ForkBomb.main(ForkBomb.java:11)
真正的文件路径是/Users/default/Desktop/Eclipse/TreeThing/src/Point.java,但是因为目录 src 被忽略了,所以程序不会运行。我该如何解决?
【问题讨论】:
-
它是相对于当前工作目录打开的,显然是
TreeThing,而不是TreeThing/src。 -
我自己追踪了文件路径,它位于一个名为 src 的文件夹中,该文件夹位于 TreeThing 中。
-
也许你应该再次阅读
getCanonicalPath()的javadoc(或第一次?),看看它实际上做了什么。提示:它不是文件搜索方法。 -
Java 不是脚本语言。您并没有真正运行源文件。