Błąd podczas wywoływania skompilowanego pliku m (.jar) w wielowątkowej aplikacji Java

Mam prosty plik m

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

Które udało mi się skompilować przy użyciu MATLAB Builder JA w pliku .jar.

Przetestowałem plik .jar w aplikacji z jednym wątkiem i działa bez problemu.

Błąd pojawił się, gdy używam go w wielowątkowej aplikacji GUI. Uruchamiam .jar jako wątek w jednej z utworzonej klasy i pojawia się następujący błąd.

Java Runtime Environment wykrył nieoczekiwany błąd:

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

Java VM: Java HotSpot (TM) Client VM (10.0-b19 tryb mieszany windows-x86) Problematyczna ramka:

C [jvm.dll + 0x1108b0]

Po debugowaniu odkryłem, że błąd występuje, gdy mój wątek dzwoni
media = new Media(); (Nazywam mój .jar jako Media.jar)

To jest mój kod Java:
// 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>}

Co jest nie tak? Czy to mój kod?

questionAnswers(1)

yourAnswerToTheQuestion