Я написал простой AppleScript и пытаюсь вызвать процесс из Java, который будет использовать osascript
для запуска реального скрипта.Сценарий кажется выполненным, но ничего не выводится.Я попытался запустить тот же сценарий из терминала, и он работал как положено - я получил вывод как {{300, 450}, {500, 500}}
.
public void macTest() throws ScriptException, IOException, InterruptedException {
final String script= "tell application \"System Events\" to tell application process \"Eclipse\"\n" +
" get {size, position} of window 1\n" +
"end tell";
System.out.println(runProcess(String.format("osascript -e '%s'", script)));
}
public static String runProcess(String cmdline) throws IOException,
InterruptedException {
Process p = Runtime.getRuntime().exec(cmdline);
p.waitFor();
try {
return readContents(p.getInputStream());
} finally {
p.destroy();
}
}
public static String readContents(InputStream inputStream)
throws IOException {
StringBuilder contents = new StringBuilder();
BufferedReader reader = new BufferedReader(new InputStreamReader(
inputStream));
try {
String line;
while ((line = reader.readLine()) != null) {
contents.append(line).append("\n");
}
} finally {
reader.close();
}
return contents.toString().trim();
}
Кажется, что входной поток здесь пуст.Как мне получить выходные данные моего процесса в Java?