Значение переменной output / log перед выходом в eclipse - PullRequest
0 голосов
/ 07 декабря 2010

Мне нужно знать, может ли eclipse вывести значение в журнал или на консоль, прежде чем я нажму на завершение процесса.

Допустим, у меня есть метод, который делает это:

 long cnt = 0;
 while(true)
      {
        cnt ++;
      }

Я бы нажал кнопку «Выполнить», и она будет увеличивать его, а затем я нажму кнопку «Завершить» [в опции запуска затмения], чтобы завершитьпрограмма.Перед выходом я хочу, чтобы eclipse вывела / записала значение cnt.

Если это недоступно, по крайней мере, затмение может регистрировать / выводить значение, скажем, каждую минуту или несколько секунд ... так что в конце я буду отключен только значениями в диапазоне минут.

Я пытаюсь что-то сравнить, и я хочу знать, как быстро я могу работать на своем оборудовании, прежде чем запускать тест.Следовательно, я не хочу, чтобы какие-либо условные выражения и т. Д. В программе замедляли его.

Есть ли какие-либо указатели?

Спасибо

Ответы [ 3 ]

1 голос
/ 07 декабря 2010

Нет, вы не можете печатать какие-либо значения, когда JVM завершается.

Чтобы вывести значение очень часто, вы можете добавить что-то вроде этого:

long l = System.currentTimeMillis();
long cnt = 0;
while (true) {
  cnt++;
  if((System.currentTimeMillis()-l) > 2000L) {
    l = System.currentTimeMillis();
    System.err.println(cnt);
  }
}
0 голосов
/ 19 апреля 2011

Eclipse не вызывает shutdownHooks при нажатии большой красной кнопки завершения: https://bugs.eclipse.org/bugs/show_bug.cgi?id=38016

Разработайте код, который не требует отключения, если это важно.

0 голосов
/ 07 декабря 2010

Один из способов добиться этого - а Eclipse на самом деле не имеет к этому никакого отношения - добавить ShutdownHook ( ссылка ) к среде выполнения вашего кода. Основная цель ловушки завершения работы - предоставить вашему приложению механизм для выполнения некоторых операций очистки при выходе из JVM.

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...