Lançamento não gerado gerado pelo JLink ou UseFrontEnd
Esta rotina de exemplo gera duas mensagens de aviso Throw :: nocatch na janela do kernel. Eles podem ser manipulados de alguma forma?
O exemplo consiste nesse código em um arquivo "test.m" criado em C: \ Temp:
Needs["JLink`"];
$FrontEndLaunchCommand = "Mathematica.exe";
UseFrontEnd[NotebookWrite[CreateDocument[], "Testing"]];
Em seguida, esses comandos colaram e são executados no prompt de comando do Windows:
PATH = C:\Program Files\Wolfram Research\Mathematica\8.0\;%PATH%
start MathKernel -noprompt -initfile "C:\Temp\test.m"
Termo aditiv
O motivo para usar o UseFrontEnd em oposição ao UsingFrontEnd é que um front end interativo pode ser necessário para preservar a saída e as mensagens dos blocos de anotações que geralmente são executados de maneira interativa. Por exemplo, com C: \ Temp \ test.m modificado da seguinte forma:
Needs["JLink`"];
$FrontEndLaunchCommand="Mathematica.exe";
UseFrontEnd[
nb = NotebookOpen["C:\\Temp\\run.nb"];
SelectionMove[nb, Next, Cell];
SelectionEvaluate[nb];
];
Pause[10];
CloseFrontEnd[];
e um bloco de anotações C: \ Temp \ run.nb criado com uma única célula contendo:
x1 = 0; While[x1 < 1000000,
If[Mod[x1, 100000] == 0,
Print["x1=" <> ToString[x1]]]; x1++];
NotebookSave[EvaluationNotebook[]];
NotebookClose[EvaluationNotebook[]];
esse código, iniciado a partir de um prompt de comando do Windows, será executado interativamente e salvará sua saída. Não é possível obter usando o script UsingFrontEnd ou MathKernel "C: \ Temp \ test.m".