亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如果我使用 Java 8 庫編寫應用程序并嘗試使用 Java 6 編譯器對其進行編譯

如果我使用 Java 8 庫編寫應用程序并嘗試使用 Java 6 編譯器對其進行編譯

慕工程0101907 2022-07-20 16:48:31
我的筆記本電腦上有 Java 8。我使用 java.time 庫編寫了一個小代碼片段,以使用 Eclipse IDE v4.9(2018-09 版本)計算應用程序處理時間。該項目使用Java 1.6 編譯器版本。然后我在我的筆記本電腦上運行該應用程序,它運行時沒有任何錯誤,并且產生了預期的輸出。然后我使用 Java 1.6 編譯器將應用程序導出到一個 war 文件中,以便在運行 Java 1.7 vm 的 tomcat 6 服務器中運行它。我遇到了以下情況:日志文件中沒有錯誤。日志級別設置為調試。應用程序處理數據庫行并基于一些邏輯,插入 4 個不同的數據庫表。在輪詢輸入數據庫表時,應用程序沒有選擇有效的輸入行。我在筆記本電腦上安裝了 Java 7,將 Java 7 設置為工作區 JRE,代碼片段引發了編譯錯誤。我的問題是,當我使用 Java 6 編譯器基于 Java 8 庫編譯代碼時,構建不應該失敗嗎?在整個練習過程中,應用程序從未出現任何錯誤,它在我的筆記本電腦上成功運行并產生了預期的輸出(顯然是由于我的筆記本電腦有 Java 8 vm)。我發現問題根本原因的方式純屬意外。這是 Java 錯誤還是已知問題?更新:我不是在尋找問題的解決方案。我正在尋找 Java 編譯器行為的解釋。
查看完整描述

3 回答

?
開心每一天1111

TA貢獻1836條經驗 獲得超13個贊

如果您使用 Maven,您的代碼將被運行。但是您必須確保僅使用所選 Java 版本的功能。



查看完整回答
反對 回復 2022-07-20
?
慕標琳琳

TA貢獻1830條經驗 獲得超9個贊

java.time僅在 Java 8 中引入。因此,如果您使用它,您的代碼將無法在以前的 JVM 版本上運行。

您應該更改 Tomcat 的 JVM 版本或java.time從項目中刪除相關代碼。


查看完整回答
反對 回復 2022-07-20
?
慕姐4208626

TA貢獻1852條經驗 獲得超7個贊

是的,如果您使用 java 7+ 版本中引入的功能,它可能會失敗。引用幾個:

  1. java.time 庫。

  2. 菱形語法:List list = new ArrayList<>();

  3. Lambda 或流函數。

  4. switch 語句中的字符串。

  5. Iterable 接口中的 forEach() 方法。

  6. 接口中的默認方法和靜態方法。

這不是一個完整的列表,而是一些示例。


查看完整回答
反對 回復 2022-07-20
  • 3 回答
  • 0 關注
  • 114 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號