idea 運行時報錯:
Exception in thread "main" java.lang.NoClassDefFoundError
Caused by: java.lang.ClassNotFoundException: org.apache.flink.api.java.ExecutionEnvironment
但是開發時idea 中,ExecutionEnvironment 是存在的,源碼可以跳轉和查看.
原因(借用:https://www.cnblogs.com/xyhz0310/p/6803950.html):
NoClassDefFoundError錯誤的發生,是因為Java虛擬機在編譯時能找到合適的類,而在運行時不能找到合適的類導致的錯誤。例如在運行時我們想調用某個類的方法或者訪問這個類的靜態成員的時候,發現這個類不可用,此時Java虛擬機就會拋出NoClassDefFoundError錯誤。與ClassNotFoundException的不同在於,這個錯誤發生只在運行時需要加載對應的類不成功,而不是編譯時發生。
簡單總結就是,NoClassDefFoundError發生在編譯時對應的類可用,而運行時在Java的classpath路徑中,對應的類不可用導致的錯誤。
可以看到是在運行時,無法獲取到 org.apache.flink.api.java.ExecutionEnvironment 類,也就是說classpath 沒有包含對應的 jar 包
解決方法:
1. 點擊設置工程
2. 添加在SDKs 中添加 flink 安裝目錄下的 lib 下所有jar 包
加入后重新運行就可以了