java - Netbeans Profiler: conectándose a la máquina virtual de destino para siempre
java-7 (2)
Estoy tratando de adjuntar el perfilador de Netbeans a mi proyecto Java pero se atasca con la Connecting to the target vm
máquina virtual Connecting to the target vm
.
Encontré este viejo informe de errores pero eso ya está arreglado. Mi versión es 7.1.2 con Java 1.7.0_04 en Windows 7.
Intenté deshabilitar el firewall e iniciar Netbeans como administrador, pero todavía tengo el mismo problema.
Un poco extraño es que la calibración funciona bien.
Tengo la sensación de que es un problema con Java 7. Porque si he buscado en profiler/lib/deployed
deployed no hay una carpeta jdk17. Sólo jdk16 y jdk15.
¿Alguna idea?
Descubrí que el perfilador funciona si lo adjunto dinámicamente. Por lo tanto, primero debe iniciar la aplicación (con un punto de interrupción). Luego hace clic en Perfil> Adjuntar perfil ... En la parte superior, seleccione su proyecto y adjunte un generador de perfiles dinámico local. Si ya creó el incorrecto, puede cambiarlo en la parte inferior del cuadro de diálogo Adjuntar perfil. Ahora seleccione el proceso en ejecución y eso es todo.
Tuve el mismo problema al usar NetBeans 8.0.2 para perfilar una prueba de Junit en un proyecto de varios módulos de Maven.
Trabajé para solucionarlo extrayendo la prueba en un proyecto independiente de Maven y agregando los otros módulos como dependencias.
La razón por la que no funciona en el proyecto de múltiples módulos es que al hacer clic en Perfil Archivo de prueba, NetBeans genera una línea de comando incorrecta. Por ejemplo, en el proyecto multi-módulo, produce:
cd C:/test; "JAVA_HOME=C://Program Files//Java//jdk1.8.0_40" cmd /c "/"/"C://Program Files//NetBeans 8.0.2//java//maven//bin//mvn.bat/" -Dtest=PerfTest -DforkMode=once -Dmaven.surefire.debug=${exec.args} -Dexec.args= -Dmaven.ext.class.path=/"C://Program Files//NetBeans 8.0.2//java//maven-nblib//netbeans-eventspy.jar/" -Dfile.encoding=UTF-8 surefire:test/""
mientras que debería ser:
cd C:/test; "JAVA_HOME=C://Program Files//Java//jdk1.8.0_40" cmd /c "/"/"C://Program Files//NetBeans 8.0.2//java//maven//bin//mvn.bat/" -Dtest=PerfTest -DforkMode=once -Dmaven.surefire.debug=${exec.args} -Dexec.args=/"-agentpath:///"C:/Program Files/NetBeans 8.0.2/profiler/lib/deployed/jdk16/windows-amd64/profilerinterface.dll///"=///"C://Program Files//NetBeans 8.0.2//profiler//lib///",5140,10 -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=C://Users//foo//AppData//Local//NetBeans//Cache//8.0.2//mavencachedirs//2029222463//org-netbeans-modules-profiler /" -Dmaven.ext.class.path=/"C://Program Files//NetBeans 8.0.2//java//maven-nblib//netbeans-eventspy.jar/" -Dfile.encoding=UTF-8 surefire:test/""
TL; DR: el argumento -Dexec.args = está vacío en el proyecto de múltiples módulos.