La aplicación Java no forzará el cierre, evita el cierre

3

Creo que podría haber un problema en El Capitán con las aplicaciones de Java que obligan a dejar de fumar, porque he visto a varias personas hablar sobre problemas similares a este sin que se hayan presentado soluciones reales.

He estado escribiendo aplicaciones en eclipse, y una de mis aplicaciones a veces tiene un problema donde el programa finaliza, pero el icono de Java permanece en el dock.

Puedo hacer clic con el botón derecho en el ícono y decirle a Forzar salida, pero esto no tiene ningún efecto. Si abro la ventana de salida forzada con command-option-escape, la aplicación aparece, pero nuevamente, la acción de salir forzada no hace nada. La aplicación no se muestra en el Monitor de actividad, por lo que no puedo finalizar el proceso.

El apagado es imposible mientras esta aplicación permanezca abierta. Tengo que forzar el cierre y reiniciar para deshacerme de este programa.

Puedo ejecutar "killall Dock" desde la Terminal, lo que hace que la aplicación desaparezca del muelle ... PERO, la aplicación aún se muestra en la ventana de forzar el cierre y todavía no se puede forzar el cierre desde allí. Además, después de ejecutar este comando, aparece una ventana con apariencia de terminal etiquetada como "java". Esta nueva aplicación no se puede forzar el cierre mediante un clic con el botón derecho, NO aparece en la ventana de forzar el cierre y tampoco aparece en el Monitor de actividad. Cerrar normalmente todavía es imposible.

He visto varios otros temas en los que las personas tuvieron este problema con ciertos programas Java bajo El Capitán, pero la mayoría tenía muy pocos detalles y ninguno tenía una verdadera solución al problema.

¿Alguien sabe por qué sucede esto? ¿Cómo evitar que esto suceda en mis programas? ¿Cómo forzar verdaderamente el cierre de aplicaciones como estas?

    
pregunta Hal Meticulous 21.08.2016 - 02:29

2 respuestas

1

Debería poder usar Terminal para finalizar el proceso, si conoce su nombre con los siguientes comandos.

  1. Encuentre el identificador de proceso (PID). Sustituya [su proceso aquí] con el nombre de su proceso.

    ps -e | grep "[su proceso aquí]"

  2. El PID estará en la columna más a la izquierda. Aquí está la salida del ejemplo:

    7642 ttys001 0: 00.00 grep

  3. Ahora escriba, en la terminal, sustituyendo [PID] por su proceso 'PID

    kill -9 [PID]

  4. Vuelva a ejecutar el paso 2. Si el proceso ya no existe, lo ha eliminado correctamente.

Breve explicación de los pasos:

  1. ps proporciona información de los procesos en ejecución. En este caso, usamos grep para filtrar el proceso específico que estábamos buscando.

  2. El formato de las columnas de ps es PID/TTY/TIME/CMD . El campo en el que estamos interesados es PID .

  3. kill -9 envía la señal innegable SIGKILL al proceso especificado en PID . La señal no puede ser ignorada por ningún proceso y, por lo tanto, se finaliza de inmediato, sin errores ni respuestas.

  4. Como se mencionó anteriormente, ps proporciona información de los procesos en ejecución . Si su proceso ya no está en la salida de ps , ya no se está ejecutando.

Recomendaría arreglar ese extraño error de salida tuyo.

killall Dock solo mata el proceso Dock, lo que obliga a una actualización de los programas en ejecución. Esto puede hacer que su aplicación desaparezca del dock, pero la aplicación todavía se puede ejecutar en segundo plano.

Personalmente, no tengo ningún problema con las aplicaciones Java en El Capitán. No soy un experto en Java, así que probablemente no debería sugerir ninguna razón para este comportamiento inesperado. ¿Has intentado presentar un informe de error ?

    
respondido por el perhapsmaybeharry 21.08.2016 - 04:44
0

En el Monitor de actividad, probablemente solo se llame "java", ya que es java que ejecuta la aplicación por ti. Si ejecuta varias aplicaciones java, las entradas múltiples llamadas "java" estarán en la lista, así que asegúrese de seleccionar la correcta allí. Es posible que pueda inferir el correcto al verificar qué archivos abrió.

    
respondido por el John Keates 21.08.2016 - 05:08

Lea otras preguntas en las etiquetas