seticon redimensionar icon clase java php symfony1 mamp

redimensionar - Java 1.6 roto cuando se llama por la tarea de fondo Symfony



redimensionar icon java (3)

Tengo una tarea de Symfony que genera algunos archivos llamados exec a un jar y luego analiza la salida. El tarro se ejecuta correctamente desde la línea de comando, la tarea se ejecuta bien desde la línea de comando.

El problema:

Llamo a la tarea en una acción basada en un envío de formulario. Tengo la acción de iniciar un nuevo proceso php en segundo plano para ejecutar la tarea, independientemente de la página que haya generado ahora.

Cuando llegue a la llamada java, diga exec (java -version); produce esto:

Error occurred during initialization of VM Unable to load native library: libjava.jnilib

Siento que tiene que ver con la forma en que llamo a php cuando comienzo la tarea, pero no entiendo por qué no tendría las mismas bibliotecas que cuando uso la línea de comandos.

¿Cómo puedo hacer que Java se ejecute desde la tarea Symfony ''de fondo''?

Notas :

Solía ​​funcionar sin problemas hasta que realicé una actualización de 1.9.6 a 2.0.3.

He analizado: Broken Java Mac 10.6, pero como puedo ejecutarlo correctamente desde la línea de comandos, parece ser un problema diferente.

También he examinado Ejecutar el comando de tareas de Symfony desde el permiso shell_exec () denegado, pero no creo que los permisos sean el problema aquí.

Actualizar:

He reducido el problema a MAMP y llegar a php desde el navegador.

<?php echo exec("java -version") ...

Funcionará cuando se le llame desde la línea de comandos, pero no cuando se abra el archivo php a través del navegador. Así que la forma en que se configura MAMP está causando el problema.

Aquí está la información del entorno:

  • Valor variable
  • SHELL / bin / bash
  • TMPDIR / var / carpetas / YH / YH + uW3hDHZyxQ5AiUtr0T ++++ TI / -Tmp- /
  • Apple_PubSub_Socket_Render / tmp / launch-3rr9ZI / Render
  • Usuario myuser
  • COMMAND_MODE unix2003
  • SSH_AUTH_SOCK / tmp / launch-zinaMI / Oyentes
  • __CF_USER_TEXT_ENCODING 0x1F5: 0: 0
  • PATH / usr / bin: / bin: / usr / sbin: / sbin
  • PWD /
  • HOME / Usuarios / myuser
  • SHLVL 2
  • DYLD_LIBRARY_PATH / Applications / MAMP / Library / lib:
  • LOGNAME myuser
  • PANTALLA /tmp/launch-FYrw70/org.x:0
  • _ / Aplicaciones / MAMP / Biblioteca / bin / httpd

Dyld parece estar presente aquí. Necesito encontrar una manera de desconectarla del entorno de Mamp.

Resuelto

He descubierto una solución. Parece un hack pero funcionó. Lo publicaré aquí solo en caso de que alguien más se encuentre con el mismo problema.

Como Broken Java Mac 10.6 menciona que DYLD_LIBRARY_PATH debe estar desactivado. No estoy seguro de por qué, parece ser necesario en sistemas Unix pero no en MacOSX.

Si MAMP se establece en / Aplicaciones / MAMP / Biblioteca / lib, aquí se explica cómo deshabilitarlo: Editar / Aplicaciones / MAMP / Biblioteca / bin / envvars y comente las siguientes líneas

DYLD_LIBRARY_PATH="/Applications/MAMP/Library/lib:$DYLD_LIBRARY_PATH" export DYLD_LIBRARY_PATH

Para que se vea así:

#DYLD_LIBRARY_PATH="/Applications/MAMP/Library/lib:$DYLD_LIBRARY_PATH" #export DYLD_LIBRARY_PATH

Esto debería solucionar el problema y java 1.6 puede funcionar bien.

¿Es esto un hack? ¿O es esto un error en MAMP? Por favor, responda si conoce una mejor manera de resolver este problema.


¡Esto funcionó! La versión de MAMP que estoy ejecutando, 2.1.3, sin embargo, tiene un contenido diferente en el archivo:

#if test "x$DYLD_LIBRARY_PATH" != "x" ; then # DYLD_LIBRARY_PATH="/Applications/MAMP/Library/lib:$DYLD_LIBRARY_PATH" #else # DYLD_LIBRARY_PATH="/Applications/MAMP/Library/lib" #fi #export DYLD_LIBRARY_PATH


Esta es la solución de @paaat añadida. Solo estoy publicando para que esta pregunta salga de la lista sin respuesta.

He descubierto una solución. Parece un hack pero funcionó. Lo publicaré aquí solo en caso de que alguien más se encuentre con el mismo problema.

Como Broken Java Mac 10.6 menciona que DYLD_LIBRARY_PATH debe estar desactivado. No estoy seguro de por qué, parece ser necesario en sistemas Unix pero no en MacOSX.

Si MAMP se establece en / Aplicaciones / MAMP / Biblioteca / lib, aquí se explica cómo deshabilitarlo: Editar / Aplicaciones / MAMP / Biblioteca / bin / envvars y comente las siguientes líneas

DYLD_LIBRARY_PATH="/Applications/MAMP/Library/lib:$DYLD_LIBRARY_PATH" export DYLD_LIBRARY_PATH

Para que se vea así:

#DYLD_LIBRARY_PATH="/Applications/MAMP/Library/lib:$DYLD_LIBRARY_PATH" #export DYLD_LIBRARY_PATH

Esto debería solucionar el problema y java 1.6 puede funcionar bien.

Asegúrese de reiniciar su instalación de MAMP para que los cambios surtan efecto.