MATLAB 配置为在搜索用户可修改的动态路径之前搜索其静态 java 类路径。不幸的是,静态路径包含许多非常旧的公共库,因此如果您尝试使用新版本,您最终可能会加载错误的实现并出错。
例如,静态路径包含 google-collections.jar 的旧副本,它早已被 Google 的 guava 库取代,并且具有一些相同的类名(例如 com.google.common.base.Objects)。结果,如果您调用使用此类类之一的较新方法的 Guava 方法,您最终会得到令人惊讶的 NoSuchMethodErrors,因为首先找到了 google-collections jar。
从 R2012b 开始,MATLAB 允许您通过将 javaclasspath.txt 文件放在您的首选项文件夹中来指定要添加到静态路径的其他 jar,但这会将 jar 添加到路径的末尾,并且不允许您覆盖已构建的 jar进入 MATLAB。
那么解决这个问题的最佳方法是什么?