java MATLAB 2016使用新的guava版本
我正在尝试导入一个自定义的脂肪罐,它依赖于guava-19.0或更高版本。我使用的matlab版本在其类路径中已经有一个番石榴罐,但它是15.0版。我已经尝试从matlab的类路径中删除jar。txt文件,但如果我这样做matlab将不会启动。我还尝试创建一个javaclasspath。我的工作目录中的txt文件,包含以下行:
<before>
path/to/myjar.jar
但这也不能让matlab启动。 将我的jar直接添加到类路径。txt,所以它在静态路径中,而不是动态路径中,在启动matlab时也会给我一个错误。我正在使用Matlab2016
# 1 楼答案
有办法,但你可能不喜欢。问题是,通过设计java类加载系统,您不可能使用两个具有相同名称和包的类(除非您尽可能使用implementing your own classloader)。正如你所说,Matlab本身与较新的guava版本不兼容。因此,唯一的方法是用不同的包名重新构建google/guava,也就是说,将所有包名和各自的导入更改为唯一的,例如将
com.google.*
更改为com.google_19_0.*
,并构建一个jar。然后,您需要修改要加载的jar的源代码,以引用新包中的类,而不是原始的guava包。这显然是假设您可以修改所需jar的源代码