我正在致力于将代码从 R2007a 移动到 R2013a。我在 R2013a 中运行期间收到 java.lang.NoClassDefFoundError,但在 R2007a 中没有出现。当我打电话时就会发生这种情况。
feval('get',fname,jevent);
其中 fname
是对象过滤器的 product.ProxyField
对象,jevent
是 product.format.java.internal .JavaEvent
。
该类位于路径上的 jar 文件中,并且正在被同一 jar 文件中的另一个类访问。如果有帮助的话,堆栈跟踪不会离开产品领域。
我无权访问该 jar 文件的原始代码。我确实可以访问从原始代码派生的代码,并且两个类都在同一个包中。我猜这与 java 版本的差异有关,但我不知道该怎么做,因为我没有要重新编译的原始代码。
不幸的是,我无法提供实际的源代码或完整的细节,但谷歌搜索仅产生了 MATLAB 启动问题的结果。有什么想法吗?
最佳答案
看起来 R2007a 和 R2013a 之间的区别在于,第一个使用 1.5 jre,第二个使用 1.6 jre。如果您提供显示异常的堆栈跟踪,那么会更容易为您提供帮助。有时类会在 jvm 版本之间移动,因此拥有实际丢失的类将有助于确定丢失的类是否是刚刚移动到不同包的类。您可以使用缺少的类(class),用谷歌搜索它,添加与上面相同的异常消息,看看还有谁遇到了类似的问题。
关于java - 当代码从 R2007a 移动到 R2013a 时出现 NoClassDefFoundError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18109767/