Запуск файла.java с отдельного Mac.java
У меня проблемы с использованием 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 ответ
Здесь я вижу две проблемы.
- Вы хотите "запустить" Java-программу, которая отличается от "открытия" Java-файла.
- Даже если вы пытаетесь "открыть" файл Java с помощью
Desktop.getDesktop().open
это не значит что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
,
Надеюсь это поможет!