MATLAB Answers

0

How can I get the session history programmatically in headless?

I would like to be able to programmatically query the session history in MATLAB (equivalent to what can be seen in the Command History). As there is no documented way to do this, I use the undocumented feature:
>> com.mathworks.mlservices.MLCommandHistoryServices.getSessionHistory
Unfortunately, in headless environment (no graphics), such as an SSH connection, this command throws:
Java exception occurred:
java.awt.HeadlessException
at java.awt.dnd.DragSource.<init>(Unknown Source)
at com.mathworks.mde.cmdhist.AltHistoryTable.<init>(AltHistoryTable.java:155)
at com.mathworks.mde.cmdhist.AltHistory$9.<init>(AltHistory.java:530)
at com.mathworks.mde.cmdhist.AltHistory.<init>(AltHistory.java:530)
at com.mathworks.mde.cmdhist.AltHistory.getInstance(AltHistory.java:268)
at com.mathworks.mde.cmdhist.AltHistory.getSessionCommands(AltHistory.java:408)
at
com.mathworks.mde.cmdhist.CmdHistoryRegistrar.getSessionHistory(CmdHistoryRegistrar.java:23)
at
com.mathworks.mlservices.MLCommandHistoryServices.getSessionHistory(MLCommandHistoryServices.java:33)

Products


Release

R2015b

1 Answer

Answer by MathWorks Support Team on 11 Sep 2019
 Accepted Answer

There is currently no documented way to query the session history.
Also, 'getSessionHistory' throws in headless, but there is not other undocumented feature that could work in headless.
The only workaround would be to manually parse the 'History.xml' file in the 'prefdir'. Note however that the structure of the 'History.xml' file is undocumented, and as such, can change at any time.

  0 Comments

Sign in to comment.