3 votos

La aplicación Java no fuerza la salida, impide el cierre

Creo que puede haber un problema en El Capitan con las aplicaciones Java que fuerzan el cierre, porque he visto a varias personas hablar de problemas similares a este sin soluciones reales presentadas.

He estado escribiendo aplicaciones en eclipse, y una de mis aplicaciones de vez en cuando tiene un problema en el que el programa termina, sin embargo, el icono de java permanece en el dock.

Puedo hacer clic con el botón derecho en el icono y decirle que fuerce la salida, pero no tiene ningún efecto. Si abro la ventana de forzar salida con command-option-escape, la aplicación aparece, pero de nuevo, forzar salida no hace nada. La aplicación no aparece en el Monitor de Actividad, así que no puedo terminar el proceso.

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

Puedo ejecutar "killall Dock" desde Terminal, lo que hace que la aplicación desaparezca del dock... PERO, la aplicación sigue apareciendo en la ventana de forzar salida, y todavía no se puede forzar la salida desde allí. Además, una ventana con aspecto de terminal llamada "java" aparece después de ejecutar este comando. Esta nueva aplicación no puede ser forzada a salir a través del botón derecho del ratón, NO aparece en la ventana de forzar salida, y tampoco aparece en el Monitor de Actividad. El apagado normal sigue siendo imposible.

He visto varios otros temas donde la gente tenía este problema con ciertos programas java bajo El Capitán, pero la mayoría tenía muy poco detalle, y ninguno tenía una verdadera solución al problema.

¿Alguien sabe por qué ocurre esto? ¿Cómo evitar que ocurra en mis programas? ¿Cómo forzar realmente la salida de aplicaciones como éstas?

0 votos

No se trata de un problema de Java. He experimentado esto con múltiples aplicaciones. Se quedan en el dock incluso si están cerradas, y sólo un apagado lo arreglará.

0 votos

¿De verdad? Vaya. Así que si no hay otra manera de detener los procesos ... ¿sería el momento de informar del error a Apple? ED: Tengo curiosidad, aunque- este problema no sucede con todas las aplicaciones, ¿correcto? Así que debe haber algo que estoy haciendo mal en mi codificación para crear este problema. Quiero decir, y un montón de otros desarrolladores de aplicaciones, por lo que probablemente no es algo obvio. Pero debe ser evitable, ¿verdad?

0 votos

Esto me pasa con muy poca frecuencia, y culpo a la propia aplicación cuando lo hace. No tengo ni idea de por qué lo hace.

2voto

Shimon Doodkin Puntos 101

Usted debe ser capaz de utilizar Terminal para matar el proceso, si usted sabe su nombre con los siguientes comandos.

  1. Busque el identificador del proceso (PID). Sustituye [tu proceso aquí] por el nombre de tu proceso.

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

  2. El PID estará en la columna de la izquierda. Este es un ejemplo de salida:

    7642 ttys001 0:00.00 grep

  3. Ahora escriba, en el terminal, sustituyendo [PID] por el PID de su proceso

    kill -9 [PID]

  4. Vuelva a ejecutar el paso 2. Si el proceso ya no está allí, lo has matado con éxito.


Breve explicación de los pasos:

  1. ps ofrece información sobre los procesos en ejecución. En este caso, utilizamos grep para filtrar el proceso específico que buscábamos.

  2. El formato de ps es PID/TTY/TIME/CMD . El campo que nos interesa es PID .

  3. kill -9 envía la innegable SIGKILL al proceso especificado en PID . Esta señal no puede ser ignorada por ningún proceso y, por lo tanto, se termina inmediatamente, sin peros.

  4. Como ya se ha dicho, ps da información de corriendo procesos. Si su proceso ya no está en ps ya no está funcionando.


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

killall Dock sólo mata el proceso Dock, lo que fuerza una actualización de los programas en ejecución. Esto puede hacer que tu aplicación desaparezca del Dock, pero la app puede seguir ejecutándose 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 probado presentación de un informe de error ?

0 votos

Al ejecutar "ps -e | grep Main", los únicos procesos que aparecen son un montón de ayudantes de Google Chrome y la propia función grep. Al ejecutar "ps -e | grep java", sólo aparece la función grep. Supongo que la ventana con aspecto de terminal java es la forma que tiene el ordenador de decirme que la aplicación sigue ejecutándose en segundo plano, pero no parece que tenga forma de encontrar el nombre del proceso.

0 votos

¿Has mirado en el Monitor de Actividad para estos procesos? Si no es así, podría ser un proceso zombi . Alternativamente, pruebe grep para el nombre de su proyecto.

0 votos

Mira, no me gusta ser grosero, pero... ¿has leído algo? Mencioné Monitor de Actividad dos veces en mi post original, y la respuesta que comentaste era SOBRE grep ing el nombre de mi proyecto. Voy a mirar en los procesos zombie sin embargo, tal vez eso tiene algo que ver con eso.

0voto

John Keates Puntos 711

En el Monitor de actividad, probablemente sólo se llame "java", ya que es java quien ejecuta la aplicación por ti. Si ejecutas varias aplicaciones java, aparecerán varias entradas llamadas "java" en la lista, así que asegúrate de seleccionar la correcta. Es posible que puedas deducir cuál es la correcta comprobando qué archivos ha abierto.

0 votos

No hay ninguna entrada llamada "java" en el Monitor de Actividad, lo cual es especialmente extraño, ya que ese es el nombre de la ventana con aspecto de terminal que se creó.

0 votos

En ese caso podría ser un problema de LaunchServices. Puede comprobar los registros en Console.app?

0 votos

Veo un montón de cosas que dicen "SecTaskLoadEntitlements failed error=22" que PARECEN coincidir con las veces que se inició el error. ¿Podría eso tener algo que ver?

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X