我正在做一个非常简单的项目,应该在运行时使用Windows视频播放器打开图像。但是,我遇到了一个问题。我希望它能够使用相对文件路径访问文件“ snp.jpg”,因此它可以在我自己的计算机以外的计算机上工作。但是,当我将其设置为绝对文件路径时,它将失败并告诉我“文件...不存在”。有任何想法吗?
import java.awt.Desktop;
import java.io.File;
public class openpic {
public static void main (String args[]) throws Exception
{
File f = new File ("C:\Users\charl\Desktop\Computer Science\JavaProjects\src\snp.png");
Desktop d = Desktop.getDesktop();
d.open(f);
System.out.println("imageviewer open;");
}
}
答案 0 :(得分:2)
(糟糕,在阅读代码上方的文本之后,解决问题的答案)
相对路径将从您运行程序的目录开始。也称为<当前工作目录。
此外,在使用文件时,请尝试将NIO API与Path一起使用。喜欢:
Path filePath = Paths.get("./snp.png")
使用此API,您可以使用以下方法检查工作目录:
filePath.toAbsolutePath()
// just print it then, or check with a debugger
另外,请注意斜线。
在使用Windows和斜杠\
时,需要将它们加倍:\\
。
其他选择是将其反转:/
。
答案 1 :(得分:2)
Microsoft Windows语法
import java.awt.Desktop;
import java.io.File;
public class openpic {
public static void main (String args[]) throws Exception
{
// Microsoft Windows syntax
File f = new File ("C:\\Users\\charl\\Desktop\\Computer Science\\JavaProjects\\src\\snp.png");
Desktop d = Desktop.getDesktop();
d.open(f);
System.out.println("imageviewer open;");
}
}