Yanıtlar:
Bu makale Java 5 ve altı için bu ayar imi var .
Temel olarak ile çalıştırın :
-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=1044
İçin yukarıda Java 5 ve bunu çalıştırmak:
-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=1044
Java 5.0'dan önce -Xdebug
ve-Xrunjdwp
bağımsız değişkenler. Bu seçenekler daha sonraki sürümlerde çalışmaya devam edecektir, ancak daha yavaş olacak olan JIT yerine yorumlanmış modda çalışacaktır.
Java 5.0'dan, -agentlib:jdwp
tek seçeneği kullanmak daha iyidir :
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=1044
Üzerindeki seçenekler -Xrunjdwp
veya agentlib:jdwp
bağımsız değişkenler:
transport=dt_socket
: JVM'ye bağlanmak için kullanılan yol anlamına gelir (soket iyi bir seçimdir, uzak bir bilgisayarda hata ayıklamak için kullanılabilir)address=8000
: TCP / IP portu açık, hata ayıklayıcıdan bağlanmak için, suspend=y
: 'y' ise, JVM'ye yürütmeyi başlatmak için hata ayıklayıcı eklenene kadar beklemesini söyleyin, aksi takdirde ('n' ise) hemen yürütmeye başlar.Xrunjdwp
kaldırılmış (veya kaldırılır?) Neden alacağını agentlib:jdwp
bitti?
-Xdebug -Xrunjdwp
Maven projelerinde hata ayıklarken kullanır ve JIT'lenmiş gibi çalışırlar.
Java 9.0'dan beri JDWP varsayılan olarak yalnızca yerel bağlantıları destekler. http://www.oracle.com/technetwork/java/javase/9-notes-3745703.html#JDK-8041435
Uzaktan hata ayıklama için bir *:
adres ile programı çalıştırmak gerekir :
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:8000
Java 1.5 veya üstü için:
java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 <YourAppName>
Java 1.4 için:
java -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005 <YourAppName>
Java 1.3 için:
java -Xnoagent -Djava.compiler=NONE -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005 <YourAppName>
İşte basit bir programdan çıktı:
java -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=1044 HelloWhirled
Listening for transport dt_socket at address: 1044
Hello whirled
java -Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=8001,suspend=y -jar target/cxf-boot-simple-0.0.1-SNAPSHOT.jar
address
hata ayıklamaya izin vereceği bağlantı noktasını belirtir
** Maven ile Spring Boot uygulamasında hata ayıklama:
mvn spring-boot:run -Drun.jvmArguments=**"-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8001"
İşte en kolay çözüm.
Maven kullanıyorsanız, çok sayıda ortam özel yapılandırması gerekir. Yani, programınızı maven'den başlatırsanız, mvnDebug
komut yerinemvn
uygulamanızı uzaktan hata ayıklama yapılandırılmış olarak başlatmaya özen gösterir. Artık bağlantı noktası 8000'e bir hata ayıklayıcı ekleyebilirsiniz.
Sizin için tüm çevre sorunlarıyla ilgilenecektir.
-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=PORT_NUMBER
Burada sadece dt_socket aktarımı yapılandırıldığında ve VM sunucu hata ayıklama modunda çalışırken varsayılan olarak etkinleştirilen bir Soket Takma Konektörü kullanıyoruz.
Daha fazla bilgi için şu adrese başvurabilirsiniz: https://stackify.com/java-remote-debugging/
*:1044
, herhangi bir bilgisayardan uzaktan hata ayıklamayı etkinleştirmek gibi adresinizi yapılandırmak isteyebilirsiniz