Удаление программ Java (Mac / Linux) - PullRequest
1 голос
/ 02 января 2012

Как бы я заставил свое Java-приложение удалить себя, а затем закрыть себя на Mac / Linux OS?Я пробовал пару Runtime команд, но ни одна из них, похоже, не работает.

Примерно так:

try {
    Runtime.getRuntime().exec(new String[]{"/bin/sh", "-c", "rm \"" + getRunningJarPath() + "\""});
} catch (final IOException e) {}

Примечание. Метод: getRunningJarPath Точно.

Ответы [ 3 ]

1 голос
/ 02 января 2012

Как правило, это невозможно: ваша программа может не иметь прав на удаление.

Кроме того, есть проблема: во время работы вашей программы JVM удерживает блокировку чтения в JAR, поэтому вполне возможно, что вы не сможете удалить ее сразу.

Обычно вы запускаете свою программу из скрипта, который проверяет код завершения и удаляет файлы при необходимости.

0 голосов
/ 02 января 2012

Вы не указываете, почему вы хотите, чтобы программа была впоследствии удалена.

В любом случае, вы не должны полагаться на манипулирование файловой системой самостоятельно. Я бы посоветовал вам взглянуть на Java WebStart, так как он обеспечивает все необходимое кэширование файловой системы (включая срок действия).

0 голосов
/ 02 января 2012

Вы можете создать задание cron для удаления файла, которое запустится с задержкой

...