2013-08-07 47 views
0

我正在將代碼從R2007a移至R2013a。我在R2013a運行期間遇到了一個java.lang.NoClassDefFoundError,它沒有出現在R2007a中。它發生在我打電話時。當代碼從R2007a移至R2013a時NoClassDefFoundError

feval('get',fname,jevent);

fnameproduct.ProxyField對象爲對象過濾器和jeventproduct.format.java.internal.JavaEvent。 該類位於路徑上的jar文件中,並且正被另一個類在同一個jar文件中訪問。如果有幫助,堆棧跟蹤不會離開產品的領域。

我無法訪問jar文件的原始代碼。我有權訪問源代碼,並且這兩個類都在同一個包中。我猜這與java版本中的差異有關,但我不知道該怎麼做,因爲我沒有原始代碼來重新編譯。

不幸的是我不能提供實際的源代碼或完整的細節,但谷歌搜索只產生了MATLAB啓動問題的結果。有什麼想法嗎?

+2

我們需要更多的細節。你說「移動代碼」,但你說你沒有訪問原始代碼。你在動什麼罐子? – Avery

+0

對不起。我沒有移動我正在使用的R2007a的MATLAB代碼工作的JAR文件來處理R2013a。其中一些代碼調用java方法,這就是我得到錯誤的地方。我無法訪問編譯jar文件的代碼,但我確實有調用它的MATLAB代碼。 – Jias

+0

請在原始帖子中提供導致上述錯誤的代碼。現在有很多選擇。 – Avery

回答

1

似乎R2007a和R2013a之間的差異是,第一次使用1.5JRE和第二次使用1.6JRE。如果您提供顯示異常的堆棧跟蹤,那將會更容易幫助您。有時類會在jvm版本之間移動,因此如果有實際缺失的類,將有助於確定缺少的類是否只是移動到不同的包中。你可以帶上缺少的課程,谷歌它會添加上面提到的同樣的異常信息,並看到還有誰遇到過類似的問題。