有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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) 个答案

  1. # 1 楼答案

    有办法,但你可能不喜欢。问题是,通过设计java类加载系统,您不可能使用两个具有相同名称和包的类(除非您尽可能使用implementing your own classloader)。正如你所说,Matlab本身与较新的guava版本不兼容。因此,唯一的方法是用不同的包名重新构建google/guava,也就是说,将所有包名和各自的导入更改为唯一的,例如将com.google.*更改为com.google_19_0.*,并构建一个jar。然后,您需要修改要加载的jar的源代码,以引用新包中的类,而不是原始的guava包。这显然是假设您可以修改所需jar的源代码