Как открыть приложения с помощью Runtime.exec() в OS X?Открытые приложения с Runtime.exec() в OS X
мой инструктор сделал дать нам пример того, как сделать это, за исключением того, единственная проблема в том, что он использует Windows, в то время как я использую Mac OS X, вот код, который я настроен так далеко:
public class Runtime_execution{
public static void main(String args[]){
Runtime rt = Runtime.getRuntime();
Process proc;
try{
if(System.getProperty("os.name").startsWith("Mac OS X")){
// run an OS specific program
proc = rt.exec("Contacts");
}else{
proc = rt.exec("gedit");
}
System.out.println("Before calling waitFor() method.");
proc.waitFor(); // try removing this line
System.out.println("After calling waitFor() method.");
}catch(Exception e){
System.out.println("Contacts is an unknown command.");
}
}
}
// find out what the os name is for Mac OS X
class Random{
public static void main(String args[]){
System.out.println(System.getProperty("os.name"));
}
}
Когда я запускал программу, выход продолжал отображения:
Contacts is an unknown command.
Как я могу это исправить?
Read (и реализации) * все * рекомендации [Когда Runtime.exec() не будет] (HTTP: //www.javaworld.com/jw-12-2000/jw-1229-traps.html). Это может решить проблему. Если нет, он должен предоставить дополнительную информацию о причине отказа. Затем проигнорируйте, что он ссылается на 'exec' и создает' Process' с помощью 'ProcessBuilder'. Также разбивайте 'String arg' на' String [] args' для учета аргументов, которые сами содержат пробелы. –
Также убедитесь, что команда, которую вы пытаетесь запустить, работает! Попробуйте запустить команду из терминала. Например, ввод «Контакты» в отчетах терминалов: 'команда не найдена'. Однако 'open/Application/Contacts.app' откроет приложение для контактов Mac. –
Это законный вопрос. Это не точный дубликат любого другого потока, и это не «настоящий вопрос» - OP предоставил правильный фрагмент кода и правильные сообщения об ошибках. Ничего в этом вопросе не смутно. Если вы можете - попробуйте помочь ответить на вопрос. Но закрыть этот вопрос не так. Я думаю, что комментарий @Devon_C_Miller частично отвечает на вопрос, можете ли вы разместить его как ответ вместо этого ... – Subhas