0

我正在将代码从 R2007a 移动到 R2013a。我在 R2013a 中运行期间收到了 java.lang.NoClassDefFoundError,它没有出现在 R2007a 中。它发生在我打电话时。

feval('get',fname,jevent);

Wherefnameproduct.ProxyField对象过滤器的对象,并且jeventproduct.format.java.internal.JavaEvent. 该类位于路径上的 jar 文件中,并且正在被同一 jar 文件中的另一个类访问。如果有帮助,堆栈跟踪不会离开产品领域。

我无权访问 jar 文件的原始代码。我确实可以访问从该原始代码派生的代码,并且两个类都在同一个包中。我猜这与java版本的差异有关,但我不确定该怎么做,因为我没有要重新编译的原始代码。

不幸的是,我无法提供实际的源代码或完整的详细信息,但谷歌搜索只产生了 MATLAB 启动问题的结果。有什么想法吗?

4

1 回答 1

1

似乎R2007a和R2013a之间的区别在于第一个使用1.5 jre,第二个使用1.6 jre。如果您提供了显示异常的堆栈跟踪,则会更容易为您提供帮助。有时类会在 jvm 版本之间移动,因此拥有实际丢失的类​​将有助于确定丢失的类是否是刚刚移动到不同包的类。您可以参加缺少的课程,在谷歌上添加与您在上面放置的相同的异常消息,看看还有谁遇到了类似的问题。

于 2013-08-07T17:38:08.577 回答