2012-07-03 271 views
4

我使用Java 6創建了一個jar。現在我創建一個發佈文檔並記錄依賴關係。我如何才能找到能夠成功運行Jar的最早版本的Java,以及能夠成功將源代碼編譯成Jar的最早版本的Java?JAR的依賴關係

回答

1

我只知道曼努埃爾的解決方案:試用一下。但是,有兩件事情需要考慮。

  1. 哪個版本的代碼語言兼容?
  2. 它將執行哪個JRE?

,第一你可以用你當前的JDK做,只是遍歷你傳遞給你的javac編譯-source-target參數。但是,這並不會阻止您使用您正在使用的JDK中的類和方法。如果你這樣做,如果你正在使用當前不存在的類或方法,代碼將不會執行較低的JRE。

savest的方式是安裝所有不同的JDK,並嘗試使用每個編譯器編譯代碼。

+1

不幸的是,據我所知,我想這不會阻止你使用的是不屬於某JDK分發的一部分API功能。例如,假設你正在使用JDK 1.7編譯器進行編譯,你可以使用'-source 1.5' -target 1.5'',編譯器仍然不會抱怨你正在使用已添加的方法'String.isEmpty()'在JDK 1.6 –

+0

@EdwinDalorzo正確!我只是想補充一點。 –

+0

在這種情況下,我不確定這種方法是否有很大幫助,因爲問題是關於檢查依賴關係,而源和目標命令行選項僅用於檢查語言特性的兼容性。 –

0

如果您使用java 6創建jar並且未指定不同版本的輸出字節碼,則生成的類文件將需要Java 6或更高版本。如果您正在手動編譯,如果您使用eclipse或其他IDE,大多數設置都可以控制項目中生成的字節碼版本,您可以嘗試查看可以使用源代碼與-target命令行選項生成的字節碼版本選項或類似的地方。

有關確定類文件的字節碼版本相關的職位:What version of javac built my jar?