我在使用Desktop.getDesktop()。open()时遇到问题。我试图使用以下代码运行另一个java文件:
import java.awt.Desktop;
import java.io.File;
import java.io.IOException;
public class OpenFile {
public static void main(String[] args){
String program = "HelloWorld.java";
try {
Desktop.getDesktop().open(new File(program));
} catch(IOException e) {
System.out.println(program + " if not on the desktop");
}
}
}
我的桌面上有一个名为HelloWorld.java的文件,但是我收到了这个错误:
Exception in thread "main" java.lang.IllegalArgumentException: The file: HelloWorld.java doesn't exist.
at java.awt.Desktop.checkFileValidation(Desktop.java:210)
at java.awt.Desktop.open(Desktop.java:270)
at OpenFile.main(OpenFile.java:10)
我在Mac上,所以这可能是问题,但我不确定。我很感激任何建议!
答案 0 :(得分:0)
我在这里看到两个问题。
Desktop.getDesktop().open
的Java文件,这并不意味着getDesktop().open
指向您的"桌面"用于在Mac桌面上打开文件的文件夹。
- 要执行Java程序,首先需要使用Java编译器编译Java程序。那么你就可以"运行"你的计划。
醇>
Runtime.getRuntime().exec("javac /Users/username/Desktop/HelloWorld.java");
Runtime.getRuntime().exec("java -classpath /Users/username/Desktop HelloWorld");
- 醇>
Desktop.getDesktop().open(File file)
方法只是在该文件类型的默认应用程序中打开所选文件。例如,在Mac上,文本文件将由TextEdit.app
打开。
希望这有帮助!