AppleScript для принудительного выхода из программ Java (JAR)?

Здравствуйте,

Я запускаю приложение Java (jar) в MAC OS. Я использую AppleScript для запуска программы Java, и она отлично работает. Теперь мне нравится использовать AppleScript для закрытия программы Java. Мне нужно принудительно закрыть программу Java. Я использовал следующий AppleScript,

set app_name to "NPC"
set the_pid to (do shell script "ps ax | grep " & (quoted form of app_name) & " | grep -v grep | awk '{print $1}'")
if the_pid is not "" then do shell script ("kill -9 " & the_pid)

AppleScript, который запускает программу Java, называется «NPC.app». Когда я запускаю «NPC.app», он отображается как NPC и NPC.npc в приложении Activity Monitor. Приведенный выше код, предназначенный для удаления приложения NPC, не удаляет ни NPC (это «NPC.app»), ни NPC.npc (это программа на Java). ). Я получаю следующую ошибку,

ошибка "sh: строка 0: kill: 1180 1182: аргументы должны быть идентификаторами процессов или заданий" номер 1

1180 — это PID для NPC, а 1182 — это PID для NPC.npc в мониторе активности.

Каков правильный AppleScript для принудительного выхода из программы Java?


person Codename K    schedule 06.04.2014    source источник


Ответы (2)


Попробуйте вместо этого использовать pkill:

do shell script ("pkill -9 NPC*")

Несколько примеров здесь.

person Mark Setchell    schedule 06.04.2014
comment
Спасибо за вашу помощь. Но при попытке выполнить следующее сообщение об ошибке: Команда завершилась с ненулевым статусом. номер 1 - person Codename K; 07.04.2014
comment
Что произойдет, если вы попытаетесь запустить его вручную из окна терминала? Кроме того, попробуйте другие номера сигналов. - person Mark Setchell; 07.04.2014
comment
Спасибо, Марк. Я все еще работаю над этим. Но я отвечу вам через день или два. - person Codename K; 09.04.2014
comment
Кто бы ни проголосовал за мой ответ, было бы неплохо, если бы вы любезно объяснили, почему... - person Mark Setchell; 09.04.2014
comment
Это был не я, Марк. Я все еще работаю над сценарием с моей программой. - person Codename K; 09.04.2014
comment
Марк, проверьте обновленный ответ и спасибо за помощь. - person Codename K; 10.04.2014

Вот AppleScript, который закроет Java-программы,

tell application "Terminal"
    do shell script "ps ax | grep \"java.*$1\" | grep -v grep | awk '{ print \"kill \" $1 }' | sh"
    quit
end tell

*Ссылка: ОС MAC – есть ли способ закрыть программу Java?

Спасибо: wojciechka ♦♦*

person Codename K    schedule 13.04.2014