Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java中的MATLAB函数导致运行时错误(异常\访问\冲突)_Java_Matlab_Exception_Runtime Error_Access Violation - Fatal编程技术网

Java中的MATLAB函数导致运行时错误(异常\访问\冲突)

Java中的MATLAB函数导致运行时错误(异常\访问\冲突),java,matlab,exception,runtime-error,access-violation,Java,Matlab,Exception,Runtime Error,Access Violation,我使用的是MatlabEngineAPI for Java,到目前为止,eval和feval函数等基础函数都可以正常工作。我甚至用这些画了一个柱状图。但是PutVariable方法导致我有异常访问冲突 代码是: package connecter; import java.util.*; import java.util.concurrent.ExecutionException; import com.mathworks.engine.*; public class MainClas

我使用的是MatlabEngineAPI for Java,到目前为止,eval和feval函数等基础函数都可以正常工作。我甚至用这些画了一个柱状图。但是PutVariable方法导致我有异常访问冲突

代码是:

package connecter;

import java.util.*;  
import java.util.concurrent.ExecutionException;

import com.mathworks.engine.*;

public class MainClass {

    public static void main(String[] args) throws IllegalArgumentException, IllegalStateException, InterruptedException, MatlabExecutionException, MatlabSyntaxException, ExecutionException {

        MatlabEngine matEng = MatlabEngine.startMatlab();
        matEng.putVariable("x", 3.0);
}
Console为我提供了以下信息:

# A fatal error has been detected by the Java Runtime Environment:
#
#  EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x000001b224d20b95, pid=1904, tid=8768
#
# JRE version: Java(TM) SE Runtime Environment (12.0.2+10) (build 12.0.2+10)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (12.0.2+10, mixed mode, sharing, tiered, compressed oops, g1 gc, windows-amd64)
# Problematic frame:
# v  ~StubRoutines::atomic_add_long
#
# No core dump will be written. Minidumps are not enabled by default on client versions of Windows
#
# An error report file with more information is saved as:
# [Filepath]\hs_err_pid1904.log
Could not load hsdis-amd64.dll; library not loadable; PrintAssembly is disabled
#
# If you would like to submit a bug report, please visit:
#   http://bugreport.java.com/bugreport/crash.jsp
#

到目前为止,我已经搜索了无数条线索,但到目前为止没有任何结果。我使用的是JavaSE-12,MATLAB是R2019b。

你做得对。这是Matlab、JDK或两者中的一个bug。你在这里做不了什么。联系MathWorks支持人员和JDK供应商,让他们知道发生了什么,并与您的IT部门沟通,看看您是否有一个奇怪的机器配置可能会把他们搞砸


并尝试在不同的JDK上运行,比如JDK8等低很多的主要版本。Matlab使用旧的JDK版本,因此它更容易被测试并与之对抗。

哇,这实际上看起来像是JDK中的一个bug!尝试不同版本的JDK。MathWorks倾向于使用更旧版本的Java,因此他们可能没有用较新版本的Java对其进行广泛的测试。还要检查Matlab文档,确保您使用的Java版本受Matlab Java引擎支持。类似的问题,可能是您的AV:除此之外,我会就此联系Mathworks支持部门,并将hs_err_pid1904.log转发给他们。Yep。您的Matlab或JDK中的某些内容是FUBARed。这不是你可以直接自己解决的问题。是时候为其中一个或两个呼叫支持了。