从seperate.java mac运行.java文件

时间:2016-09-01 15:36:18

标签: java macos desktop

我在使用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上,所以这可能是问题,但我不确定。我很感激任何建议!

1 个答案:

答案 0 :(得分:0)

我在这里看到两个问题。

  1. 你想"跑"一个Java程序,它与"开放"不同。一个Java文件。
  2. 即使你正试图打开"使用Desktop.getDesktop().open的Java文件,这并不意味着getDesktop().open指向您的"桌面"用于在Mac桌面上打开文件的文件夹。
  3.   
        
    1. 要执行Java程序,首先需要使用Java编译器编译Java程序。那么你就可以"运行"你的计划。
    2.   
    Runtime.getRuntime().exec("javac /Users/username/Desktop/HelloWorld.java");
    Runtime.getRuntime().exec("java -classpath /Users/username/Desktop HelloWorld");
    
      
        
    1. Desktop.getDesktop().open(File file)方法只是在该文件类型的默认应用程序中打开所选文件。例如,在Mac上,文本文件将由TextEdit.app打开。
    2.   

    希望这有帮助!