簡體   English   中英

ClassNotFoundException ...$$Lambda$172

[英]ClassNotFoundException …$$Lambda$172

在我們的一台生產機器上,我們在運行時遇到了一個我以前從未見過的奇怪錯誤。

com/example/MyClass$$Lambda$172
Caused by java.lang.reflect.InvocationTargetException: null
Caused by: java.lang.NoClassDefFoundError: com/example/MyClass$$Lambda$172
Caused by: java.lang.ClassNotFoundException: com.example.MyClass$$Lambda$172
...

我想知道 $$Lambda$$172 到底是什么意思。 我假設 Lambda 是指生成的 lambda 表達式? 那么 172 可能是生成代碼中的一行? 有沒有辦法查看那里到底發生了什么? 查看 MyClass 第 172 行只是一個空行,所以不可能。 這是在 JDK 1.8 版本 25.261-b09 上運行的。

一般來說,我會很感激任何關於這里可能有什么問題的提示。 請注意,有時相同的操作會成功並且不會拋出 CNFE。

謝謝,斯文

編輯不幸的是,我無法添加一個最小的示例,因為這發生在客戶機器上,而且我在開發或測試期間從未見過這種情況。

編譯后嵌套的 class 將存儲在哪里?

這里的問題並不是真的找不到 class,而是 class 的初始化失敗。 但是,閉包本身不會發生這種情況。 閉包不能有 static 初始化程序。 最有可能這是特定界面的第一次使用。 並且那個 intaface 有一個 static 初始化程序,它又使用反射。 這會導致 InvoactionTargetException。 現在一個ITE總是由另一個異常引起的。 那是根本原因,你實際上感興趣。

由於你的資料很稀少,這里我只能給你一個很粗略的方向……

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM