То, как обнаружить тот код, выполняет внутреннее затмение IDE

То, как обнаружить тот код, выполняет внутреннее затмение IDE

27
задан Dipak Chaudhari 18 March 2010 в 07:06
поделиться

3 ответа

Я не знаю общего способа получения такой информации.

Одно предложение:

Когда вы запускаете Java-программу (или веб-сервер) в Tomcat, просто добавьте аргумент, который укажет, что эта программа запущена Eclipse.

Вы можете сделать это, открыв "Open Run Dialog" (меню "Run"), затем выбрать тип приложения и добавить во вкладке "Arguments" -DrunInEclipse=true.

В вашем Java-коде вы можете проверить значение свойства:

String inEclipseStr = System.getProperty("runInEclipse");
boolean inEclipse = "true".equalsIgnoreCase(inEclipseStr);

Таким образом, если программа не запущена внутри Eclipse (или, к сожалению, если вы забыли установить свойство), свойство будет null и тогда булево inEclipse будет равно false.

21
ответ дан 28 November 2019 в 05:34
поделиться

На самом деле код выполняется не внутри Eclipse, а в отдельном Java-процессе, запущенном Eclipse, и по умолчанию Eclipse не делает ничего такого, что отличало бы его от любого другого вызова вашей программы.

Вы хотите знать, выполняется ли ваша программа под отладчиком? Если да, то вы не можете сказать наверняка. Однако вы можете проверить аргументы, используемые для вызова вашей программы, и посмотреть, есть ли там что-то, что вам не нравится.

2
ответ дан 28 November 2019 в 05:34
поделиться

Я не думаю, что есть способ сделать это. Но я бы предложил просто ввести аргумент командной строки, например 'debug'. Затем в вашем методе main просто сделайте

if (args.length > 0 && args[0].equalsIgnoreCase("debug")) {
  // do whatever extra work you require here or set a flag for the rest of the code
}

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

1
ответ дан 28 November 2019 в 05:34
поделиться