Esta rutina de ejemplo genera dos mensajes de advertencia Throw :: nocatch en la ventana del kernel. Pueden ser manejados de alguna manera?Tiro no capturado generado por JLink o UseFrontEnd
El ejemplo consiste en este código en un archivo "test.m" creado en C: \ Temp:
Needs["JLink`"];
$FrontEndLaunchCommand = "Mathematica.exe";
UseFrontEnd[NotebookWrite[CreateDocument[], "Testing"]];
Entonces estos comandos pegados y ejecutar en el símbolo del sistema de Windows:
PATH = C:\Program Files\Wolfram Research\Mathematica\8.0\;%PATH%
start MathKernel -noprompt -initfile "C:\Temp\test.m"
Adición
La razón para utilizar UseFrontEnd en lugar de utilizar FrontEnd es que se necesita un front-end interactivo para conservar la salida y los mensajes de los portátiles que generalmente se ejecutan de forma interactiva. Por ejemplo, con C: \ Temp \ test.m modificado así:
Needs["JLink`"];
$FrontEndLaunchCommand="Mathematica.exe";
UseFrontEnd[
nb = NotebookOpen["C:\\Temp\\run.nb"];
SelectionMove[nb, Next, Cell];
SelectionEvaluate[nb];
];
Pause[10];
CloseFrontEnd[];
y un cuaderno C: \ Temp \ run.nb creado con una sola célula que contiene:
x1 = 0; While[x1 < 1000000,
If[Mod[x1, 100000] == 0,
Print["x1=" <> ToString[x1]]]; x1++];
NotebookSave[EvaluationNotebook[]];
NotebookClose[EvaluationNotebook[]];
este código , lanzado desde un símbolo del sistema de Windows, se ejecutará de forma interactiva y guardará su resultado. Esto no es posible con UsingFrontEnd o MathKernel -script "C: \ Temp \ test.m".
@ Leonid, Funciona bien desde la ventana del kernel aquí también. El problema parece ser cierta interacción entre el método de entrada de archivos y JLink. No hay mensajes usando -script, pero eso no funciona como yo quiero. Actualmente en M8.0.1 XP SP3. Intentaremos una máquina diferente mañana. –
Lo siento, simplemente me perdí esos errores de alguna manera. Los reproduzco ahora. No tengo idea de por qué no los había notado antes. –