MATLAB se cuelga cuando intento usar el paquete jdde de Java, pero solo por primera vez después de un reinicio del sistema
dll jar (3)
Cambia al modo clásico inicialmente para que puedas deshacerte de eso.
Estoy usando el paquete jdde java externo en MATLAB. Tenga en cuenta que para el siguiente ejemplo, el archivo DLL que viene con el paquete debe estar en la ruta de biblioteca de MATLAB. El método para hacerlo es diferente según la versión de MATLAB.
El uso de jdde en MATLAB funciona bien, excepto por primera vez después de reiniciar la computadora o cerrar sesión / iniciar sesión en Windows. Cuando ejecuto el siguiente código por primera vez después de reiniciar una computadora, MATLAB permanecerá en modo ocupado para siempre (con 0% de CPU). Cuando esto sucede, mato el proceso de MATLAB en el administrador de tareas y reinicio MATLAB. Cuando vuelva a ejecutar el mismo código, se ejecutará instantáneamente (no me mantendré ocupado para siempre).
javaaddpath(''C:/pretty-tools-JDDE-1.0.2.jar'')
a = com.pretty_tools.dde.client.DDEClientConversation;
a.connect('''','''');
Para resumir, el código anterior hará que MATLAB se mantenga ocupado para siempre la primera vez que lo ejecuto después de un reinicio del sistema o el cierre de sesión / inicio de sesión del usuario. Cuando lo vuelva a ejecutar después de finalizar el proceso de MATLAB, funcionará perfectamente bien (no colgará MATLAB).
He visto este comportamiento en diferentes computadoras y en diferentes versiones de MATLAB (2010 y 2012). Estoy usando Windows 7 x64.
En el ejemplo de código, el comando a.connect es el que hace que MATLAB esté ocupado para siempre. Poner este comando en un bloque try / catch no ayudaría, porque a.connect no causa un error, simplemente nunca continúa.
No estoy seguro si este problema es causado por MATLAB o por el paquete java. Cualquier idea de cómo deshacerse de este comportamiento sería muy apreciada.
Nota: el argumento de entrada de a.connect no importa, siempre se bloqueará, por lo que solo di "como entrada en este ejemplo.
El código se cuelga sin ninguna razón conocida en el método DdeInitialize (). La nueva compilación JDDE-2.0.3 contiene una solución para este problema.
Intente ejecutar el comando add path por su cuenta para que haya uno o dos segundos antes de que intente ejecutar el código dependiente del archivo jar. He encontrado que este suele ser el problema con los problemas intermitentes relacionados con los tarros en Matlab