2011-09-13 24 views
5

"Çalışma" modunda (örneğin "Java Uygulaması Olarak Çalıştır" menüsünden çağrılan "hata ayıklama" modu altında çalışma zamanında farklı davranabilen kodu (örneğin, eclipse'da "Debug As Java Application" olarak çağrılır) nasıl yazabilirim? eclipse ") Yani, örneğin," Java Uygulaması Olarak Hata Ayıkla "yazılırken" Haha, hata ayıktasınız "yazdırabilir, ancak" Java Uygulaması Olarak Çalıştır "olduğunda hiçbir şey yazdırılamaz) ana yöntemi çağrılırken. Tutulma gibi herhangi IDE altında çalışabilir hangi Bunu uygulamak için herhangi bir genel yöntem var mı, Intellij vs?Kodum IDE'de "hata ayıklama" modunda çalışıyor?

+0

Bu konu işbu konu içerisinde ele alınmıştır: http://stackoverflow.com/questions/1109019/determine-if-java-application-is-in-debug-mode-in-eclipse –

cevap

7

ben şöyle bu uyguladık. Ben JVM parametreleri incelemek ve -Xdebug olan bir bakın. Lütfen şu kodlara bakın:

private final static Pattern debugPattern = Pattern.compile("-Xdebug|jdwp"); 
public static boolean isDebugging() { 
    for (String arg : ManagementFactory.getRuntimeMXBean().getInputArguments()) { 
     if (debugPattern.matcher(arg).find()) { 
      return true; 
     } 
    } 
    return false; 
} 

Eclipse, ayri ayri ayri ayri ayri uygulamalari yürütür ve JDI (Java Hata Aygitimi Arabirimi) kullanarak baglanti kurar.

Ben

+0

+1: 'debubg '?? ;) DEBUG için statik bir desen oluşturmak yerine statik bir desen oluşturabilirim. –

+0

Teşekkür ederiz, @Peter Lawrey. Benim için çalıştı gibi görünüyor çünkü jdwp ekledim. Bunu kodumda çözeceğim. – AlexR

0

bu modlar arasındaki fark ayıklama modunda IDE tipik (sadece bir hata ayıklayıcı ile uygulamayı yürütülen bağlanacak olmasıdır bu diğer IDE (örneğin IntelliJ) ile çalışır olmadığını bilmek mutlu olurdu ikili soket üzerinden). Bir hata ayıklayıcısına sahip olmanız IDE'nin vurulma noktalarını, istisnalar atılmasını vb. Keşfetmesini sağlar. Bu, normal modunda olmayacaktır.

Java kodundan hata ayıklaması ve normal mod arasında ayrım yapmak için standart ve kullanımı kolay bir yol yoktur.

İlgili konular