簡體   English   中英

使用在類路徑上使用JDK 8構建的類編譯目標為1.7的Java類

[英]Compiling Java class targeting 1.7 with classes built with JDK 8 on class path

我有以下情況:

Foo類在Bar類中引用一個方法。 我想使用針對Java 1.7的javac編譯類Foo,但在使用Java 8語法並使用JDK 8進行編譯的類路徑上提供Bar.class二進制文件。在生產中,將使用JRE 1.7運行帶有類路徑上Bar.class的另一個副本-此版本的Bar類使用Java 1.7語法,並使用JDK 7構建。

  1. 假設Bar的方法簽名完全相同,那么在編譯和運行Foo時是否會有任何問題?
  2. 我可以使用JDK 7編譯Foo還是必須使用JDK 8?

對於簡單的Javac,您可以使用-source / -target來讓Java8 JDK構建Java7類文件(這實際上只是意味着在類文件中放入不同的版本號)。

我的構建使用Maven,而當我的Jenkins服務器使用Java8構建時,指定的源/目標是1.7,每個人都可以使用他們現有的Java7 JDK運行。 當第一個從屬項目遷移到Java8時,Maven POM更改為構建1.8目標,並且每個人都被迫升級。

暫無
暫無

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

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