MATLAB Answers

Clearing Java Objects

21 views (last 30 days)
Joseph Burgel
Joseph Burgel on 21 Jun 2011
My code uses Java objects that I created and provide to ML in a .jar file.
After my code terminates, I try to run "clear java" and I get a message back that some of my objects still exist and Java cannot be cleared:
Warning: Objects of Param/TableCellRenderer class exist - not clearing java Warning: Objects of Param/RowHeaderRenderer class exist - not clearing java
How can I clear these objects? The only way that I have found is to restart ML. Not fun when co-developing between ML and Java.
  3 Comments
Kaustubha Govind
Kaustubha Govind on 27 Jun 2011
Interesting problem. You might want to consider contacting Tech Support to see if they've seen this before.

Sign in to comment.

Answers (1)

Joseph Burgel
Joseph Burgel on 28 Jun 2011
As an experiment, I removed my .jar file from the Java dynamic class path and added it to the static class path by modifying classpath.txt and re-starting Matlab. Guess what...the problem went away. So, this problem lies in the fact that ML is not properly de-referencing java objects on the dynamic classpath. Or, some aspect of my .java code is causing it not to be properly de-referenced when it's on the dynamic classpath. I have other java objects that don't have this problem and work fine on the dynamic path.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!