IntelliJ IDEA hata ayıklayıcısını çalışan bir Java işlemine ekleme


237

IntelliJ IDEA hata ayıklayıcısını çalışan bir Java işlemine eklemek mümkün müdür? Evet ise, nasıl?


3
Elbette. "Uzak" Çalıştır / Hata Ayıkla yapılandırması oluşturmanız gerekir. Daha burada
Vic

2
Um, bu komut satırı bağımsız değişkenleri SADECE 14.0.2 itibariyle OKUYUN. Sadece birkaç tanesini düzenleyebilirsiniz, bu da bu sorudaki sorunun çözülmesine yardımcı olmaz. Bunu nasıl düzeltebileceğine dair bir fikrin var mı?
nuzzolilo


Ayrıca bkz.
JVM'yi

Yanıtlar:


373

Evet! Nasıl ayarlayacağınız aşağıda açıklanmıştır.

Yapılandırmayı Çalıştır

Uzaktan çalıştırma yapılandırması oluşturma:

  1. Çalıştır -> Yapılandırmaları Düzenle ...
  2. Sol üstteki "+" işaretini tıklayın
  3. En soldaki bölmede "Uzak" seçeneğini belirtin
  4. Bir ad seçin (benimkine "uzaktan hata ayıklama" adını verdim)
  5. Kaydetmek için "Tamam" ı tıklayın:

resim açıklamasını buraya girin

JVM Seçenekleri

Yukarıdaki yapılandırma üç salt okunur alan sağlar. Bunlar, JVM'ye uygulamanızı çalıştırırken uzaktan hata ayıklama için 5005 numaralı bağlantı noktasını açmasını söyleyen seçeneklerdir. Hata ayıkladığınız uygulamanın JVM seçeneklerine uygun olanı ekleyin. Bunu yapmanın bir yolu şöyle olabilir:

export JAVA_OPTS="-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005"

Ancak bu, uygulamanızı nasıl çalıştırdığınıza bağlıdır. Üçünden hangisinin sizin için geçerli olduğundan emin değilseniz, ilkinden başlayın ve çalışanı bulana kadar listeye gidin.

Uygulamanızı IntelliJ ile başlamadan önce beklemeye zorlamak suspend=nüzere suspend=yolarak değiştirebilirsiniz . Vurmak istediğiniz kesme noktası uygulama başlangıcında ortaya çıkarsa bu yararlı olur.

Hata ayıklama

Uygulamanızı normal şekilde başlatın, ardından IntelliJ'de yeni yapılandırmayı seçin ve 'Hata Ayıkla' düğmesine basın.

resim açıklamasını buraya girin

IntelliJ, JVM'ye bağlanacak ve uzaktan hata ayıklamayı başlatacaktır.

Artık kodunuza istediğiniz yere kesme noktaları ekleyerek uygulamada hata ayıklayabilirsiniz. Uygulamanın çıktısı daha önce olduğu yerde görünmeye devam edecektir, ancak kesme noktalarınız IntelliJ'de görünecektir.


2
Mac os el capitan'daki Intellij IDEA 15.0.2'de "Uzak" seçeneği yok. Bu seçeneği nasıl alabilirim?
user674669

@ user674669 Emin değilim. Belki Remotetopluluk baskısında mevcut değil? Ücretli sürümü kullanıyorum. Topluluk sürümüne sahip herhangi biri onaylayabilir mi?
Cory Klein

@CoryKlein System.out.printlnUzaktan hata ayıklama sırasında IntelliJ'deki çıkışı nasıl elde edeceğinizi biliyor musunuz ?
Don Rhummy

1
@DonRhummy Nasıl olduğunu anlarsanız, bu cevaba bu bilgiyi eklemekten memnuniyet duyarım, ancak AFAIK IntelliJ şu anda uzak bir uygulamadan IntelliJ'e giden stdout ve stderr borularını desteklemiyor.
Cory Klein

Uzak sunucuya yalnızca ssh üzerinden erişilebiliyorsa, anahtar dosyasını nasıl belirleyebiliriz?
vach

44

Bu mümkündür, ancak uygulamanızı başlattığınızda bazı JVM bayrakları eklemeniz gerekir.

Uzaktan hata ayıklama yapılandırması eklemeniz gerekir: Yapılandırmayı düzenle -> Uzak.

Ardından, görüntülenen iletişim penceresi parametrelerini program yürütmesine eklemek zorunda olduğunuz aşağıdaki gibi bulacaksınız:

-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005

Ardından uygulamanız başlatıldığında hata ayıklayıcınızı ekleyebilirsiniz. Uygulamanızın hata ayıklayıcı bağlanana kadar beklemesini istiyorsanız askıya alma bayrağını y ( suspend=y) olarak değiştirin


Aşağıdaki girişleri düzenlemeniz beni karıştırdı ve bunlar daha sonra yukarıdaki seçenek dizelerini güncelledi (en azından 13.1 CE'de)
Carl G

7
Um, bu komut satırı bağımsız değişkenleri SADECE 14.0.2 itibariyle OKUYUN. Birkaç tanesini düzenleyebilirsiniz. Bunu nasıl düzeltebileceğine dair bir fikrin var mı?
nuzzolilo

1
Ayrıca, bu seçenekleri ayarlayarak hangi sürece ekliyorsunuz?
nuzzolilo

5
Birincisi benim için çalıştı. Başkalarına not - Bunu -jar bayrağından önce belirtmem gerekiyordu.
jim

2
@Nuzzolilo, fikirde görüntülenen komut satırı bağımsız değişkenleri yalnızca görüntüleme amaçlıdır ve bu nedenle salt okunurdur. Fikire değil, hata ayıklamak istediğiniz uzak java uygulamasına eklenmeleri gerekiyor.
Ganesh Krishnan

6

AndroidStudio'da veya fikirde

  1. Uygulama hata ayıklanacak yapılandırın, Yapılandırmaları Düzenle'yi açın

"VM Seçenekleri" ekle Yapılandırma “-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005” "adresini" hatırla

resim açıklamasını buraya girin

  1. Uzak Hata Ayıklayıcı'yı yapılandırmazsa, eklemek için + işaretini tıklayın

"Bağlantı Noktası" nı 1. Adım "adres" ile aynı olarak belirtin resim açıklamasını buraya girin


6

Ayrıca, hata ayıklama modunda bağlanmak istiyorsanız JAVA_OPTS uygulamasına "-Xdebug" bayrağı eklemeniz gerektiğini unutmayın.


0

Ayrıca Tomcat GUI uygulamasını kullanıyorum (benim durumumda: C: \ tomcat \ bin \ Tomcat9w.bin).

  • Git Java sekmesi:

    resim açıklamasını buraya girin

  • Java özelliklerinizi ayarlayın, örneğin:

    Java sanal makinesi

    C: \ Program Dosyaları \ Java \ jre-10.0.2 \ bin \ server \ jvm.dll

    Java sanal makinesi

    C: \ erkek kedi \ bin \ bootstrap.jar C: erkek kedi-juli.jar \ erkek kedi \ bin \

    Java Seçenekleri :

    -Dcatalina.home C =: \ erkek kedi

    -Dcatalina.base = C: \ erkek kedi

    -Djava.io.tmpdir = C: \ erkek kedi \ temp

    -Djava.util.logging.config.file = C: \ erkek kedi \ conf \ logging.properties

    -agentlib: JDWP = ulaştırma = dt_socket sunucu = y, askıya = n, adres = *: 8000

    Java 9 seçenekleri :

    = Java.base / java.lang = TÜM-ADSIZ --add açar

    = Java.base / java.io = TÜM-ADSIZ --add açar

    = Java.rmi / sun.rmi.transport = TÜM-ADSIZ --add açar

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.