发生异常后锁定的Matlab Java JAR文件句柄

时间:2019-04-23 17:21:04

标签: java matlab handle

在Windows 8下的Matlab R2018a中,在执行jar文件后,从AddressException MATLAB抛出异常MessagingExceptionsystem()(参考代码ref.1)命令,jar文件句柄被锁定。

1:java.nio.file.FileSystemException: HelloWorld.jar: The process cannot access the file because it is being used by another process.

由于系统外壳程序(命令提示符)调用:[status,result]=system(command)!已完成执行,因此丢失了正确的句柄(在何处?)并且无法将其关闭。请注意,statusresult参数只是错误消息和返回int,没有任何句柄引用。

在Windows HelloWorld上检查关联句柄resmon.exe时,我们得到:

Matlab.exe | <pid> | File | <path\to\java\file.jar>

当您尝试删除HelloWorld.jar时,我们得到了:

File in Use. The action can't be completed because the file is open in MATLAB R2018a.

以下方法无效:

  • 关闭文件句柄fclose('all'),因为没有fopen命令(直接吗?)涉及(ref.2ref.3
  • 由于尚未创建Java对象,Java垃圾收集java.lang.System.gc()java.lang.Runtime.getRuntime().gcclear javaclear all
  • 清除Java路径javarmpath('HelloWorld.jar'),因为尚未添加Java路径。

如何在不关闭MATLAB的情况下释放该句柄?

0 个答案:

没有答案