Fehler beim Aufrufen einer kompilierten M-Datei (.jar) in einer Java-App mit mehreren Threads

Ich habe eine einfache M-Datei

function [fRate,Height,Width] = media(filename)  
obj = mmreader(filename);  
fRate = obj.FrameRate;  
Width = obj.Width;  
Height = obj.Height;  
end

Was ich mit MATLAB Builder JA erfolgreich in eine .jar-Datei kompiliert habe.

Ich habe die .jar-Datei in einer einzigen Thread-Anwendung getestet und sie funktioniert problemlos.

Der Fehler trat auf, als ich ihn in einer GUI-Anwendung mit mehreren Threads verwendete. Ich führe die .jar als Thread in einer der von mir erstellten Klassen aus und der folgende Fehler tritt auf.

Ein unerwarteter Fehler wurde von Java Runtime Environment erkannt:

EXCEPTION_ACCESS_VIOLATION (0xc0000005) bei pc = 0x6d9c08b0, pid = 5920, tid = 4788

Java VM: Java HotSpot (TM) -Client-VM (10.0-b19 Windows-x86 im gemischten Modus) Problematischer Frame:

C [jvm.dll + 0x1108b0]

Nach dem Debuggen habe ich festgestellt, dass der Fehler auftritt, wenn mein Thread aufruft
media = new Media(); (Ich benenne meine .jar als Media.jar)

Dies ist mein Java-Code:
// mediaProperty.java

<p>public class mediaProperty implements Runnable {</p><pre><code>public void mediaProperty() { Matlab_options matlab = new Matlab_options(); Object[] mediaProp = null; java.util.List lstMedia = new ArrayList(); Media media = null; try { media = new Media(); ... mediaProp = media.media(3, lstMedia); ... } catch (Exception p) { System.out.println("Exception: " + p.toString()); } finally { MWArray.disposeArray(mediaProp); if (media != null) { media.dispose(); } } } public void run() { mediaProperty(); } </code></pre>

}<br>

// GUI.java

private Thread mediap;

if (mediap == null) {<br>mediap = new Thread(new mediaProperty());<br>mediap.start();<br>}

Was ist falsch? Ist es mein Code?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage