java - 当代码从 R2007a 移动到 R2013a 时出现 NoClassDefFoundError

标签 java matlab

我正在致力于将代码从 R2007a 移动到 R2013a。我在 R2013a 中运行期间收到 java.lang.NoClassDefFoundError,但在 R2007a 中没有出现。当我打电话时就会发生这种情况。

feval('get',fname,jevent);

其中 fname 是对象过滤器的 product.ProxyField 对象,jeventproduct.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/

相关文章:

java - 我正在打印我的 linkedList 但第一个元素没有打印,这是为什么

javascript - Java selenium javascript 执行器返回空数组

matlab - 给定一个数字,快速检查它在哪个区间?

matlab - 对向量中相同的元素进行分组和求和

image - 使用 MATLAB 制作文本动画

java - 如何获得准确的位图文件大小?

java - 从文件读取的字符串未解析为本地日期

python - Python 中的细胞分割和荧光计数

arrays - 是否可以在 Matlab 中定义一个数组来保存数学运算符 [+ - */]?

java - 使用 putExtra 将上下文传递给服务