Как заставить рычаг завершения работы выполняться на процессе, запущенном от Eclipse

Я вернулся через некоторое время и попробовал предложения, которые были предоставлены ранее, и это, наконец, сработало. Я закончил тем, что удалил файл package-lock.json в / node_modules / @ angular / compiler-cli. Не уверен на 100%, было ли это как-то связано с этим, но установил ли он npm, тогда ng serve, и это сработало для меня. Спасибо!

53
задан approxiblue 7 November 2016 в 07:36
поделиться

4 ответа

Я использовал следующий взлом в конце своего основного метода обойти проблему:

if (Boolean.parseBoolean(System.getenv("RUNNING_IN_ECLIPSE"))) {
    System.out.println("You're using Eclipse; click in this console and " +
            "press ENTER to call System.exit() and run the shutdown routine.");
    try {
        System.in.read();
    } catch (IOException e) {
        e.printStackTrace();
    }
    System.exit(0);
}  
23
ответ дан approxiblue 7 November 2019 в 08:53
поделиться

Прежде всего Ваше приложение заканчивается, или Вы насильственно заканчиваете его? При насильственном окончании его (через кнопку остановки), этот , отчет об ошибках Eclipse имеет детали о том, почему это не могло бы работать.

Сбой, что, можно быть корректными об этом являющемся определенным для Windows поведением. Я нахожусь на Mac, таким образом, я не могу подтвердить, извините. Однако я могу сказать Вам, что следующая тестовая программа делает , выполняют рычаги завершения работы как ожидалось.

public class MyShutdownHook
{
    public static void main( String[] args )
    {
        System.out.println( "Entering main." );

        Runtime.getRuntime().addShutdownHook( 
            new Thread(
                new Runnable() {
                    public void run() {
                        System.out.println( "Shutdown hook ran." );
                    }   
                }
            )
        );

        System.out.println( "Exiting main." );
    }
}

Javadoc для Runtime#addShutdownHook упоминает, что рычаги завершения работы не работают, когда JVM прерывается, не выходится обычно, поэтому снова, Вы, вероятно, корректны в своих предположениях. Однако вот некоторые вещи попробовать. Снова, извините я не могу подтвердить их заранее - никакой Windows здесь. (Счастливо!)

  • Удостоверяются, что JVM не включает опция-Xrs . Это имеет побочный эффект на рычагах завершения работы.
  • Попытка, запускающаяся JVM с помощью или - сервер или - клиент опция. Это был мой опыт, что поведение пограничного случая может быть произведено выбором режима VM. (Особенно относительно поточной обработки - по крайней мере, на Mac.)
  • Вы запускающий Ваше приложение при профилировщике и т.п.? Загрузка каких-либо собственных библиотек?
  • Вы получающий некоторую фатальную ошибку и пропускающий его? Например, OutOfMemoryError и т.п.?
  • Попытка, проверяющая/снявшая флажок эти Запуск в фоне опция из Конфигурации Выполнения Вашего приложения диалоговое окно в Eclipse.
  • Наконец, что не менее важно: Вызовите System.exit () вручную, если у Вас есть возможность. :)
12
ответ дан JLR 7 November 2019 в 08:53
поделиться

Я не уверен, как зафиксировать это, но IntelliJ добавил отдельную кнопку к их диалоговому окну 'Выполнения', которое завершит работу VM способом, который называет Рычаги Завершения работы. Их отладчик не имеет этой функции.

1
ответ дан Javamann 7 November 2019 в 08:53
поделиться

Я застреваю в websphere в данный момент, и не смотрите то, что я ищу. Но я действительно помню затмение, связывающее параметр конфигурации выполнения с запуском приложения в том же VM. Действительно ли это возможно Ваш запуск Вашего JAVA-приложения в том же VM как затмение VM?

, Но опция выскочил из головы.

0
ответ дан guyumu 7 November 2019 в 08:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: