第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

如何知道一個(gè)類是用 openjdk 還是 sunjdk 編譯的?

如何知道一個(gè)類是用 openjdk 還是 sunjdk 編譯的?

飲歌長(zhǎng)嘯 2022-03-10 10:52:36
我想在我的產(chǎn)品中使用一些第三方罐子,比如 saxonica。之前我們使用 Oracle JDK?,F(xiàn)在,我們正在刪除 Oracle JDK 以使用 OpenJDK。我可以用同一個(gè)罐子嗎?在這種情況下,我想知道我的 jar 是用 Oracle JDK 還是 OpenJDK 構(gòu)建的?我怎么知道呢?
查看完整描述

2 回答

?
墨色風(fēng)雨

TA貢獻(xiàn)1853條經(jīng)驗(yàn) 獲得超6個(gè)贊

由于您將問(wèn)題標(biāo)記為“Saxon”:Saxonica 目前使用 Oracle JDK 構(gòu)建已發(fā)布的 JAR 文件,但由于 Oracle 的許可變更,這可能會(huì)在未來(lái)發(fā)生變化。如果我們確實(shí)切換,用戶應(yīng)該無(wú)法區(qū)分。

不同 JVM 之間的兼容性水平如此之高,以至于我們甚至不用費(fèi)心在多個(gè) JVM 上進(jìn)行測(cè)試。我不記得曾經(jīng)有過(guò)在一個(gè) JVM 上運(yùn)行而不在另一個(gè) JVM 上運(yùn)行的錯(cuò)誤。當(dāng)然,您需要使用正確版本范圍內(nèi)的 JVM/JDK:Saxon 9.8 與 Java 6 及更高版本一起使用,Saxon 9.9 與 Java 8 及更高版本一起使用。

@StephenC 談到了有關(guān)支持哪些平臺(tái)和不支持哪些平臺(tái)的供應(yīng)商政策。在 Saxonica,這從來(lái)不是一個(gè)支持/不支持的二元決策。如果您發(fā)現(xiàn)我們可以在實(shí)驗(yàn)室中重現(xiàn)的問(wèn)題,那么我們會(huì)盡力解決;如果您發(fā)現(xiàn)只能通過(guò)使用某些特殊平臺(tái)來(lái)重現(xiàn)的問(wèn)題,那么我們會(huì)告訴您我們無(wú)法修復(fù)它:但這并不意味著您“不受支持”。這同樣適用于 Java 版本中的“和更高版本”——?dú)g迎您在 Java 版本 17 發(fā)布之日使用 Saxon,如果您發(fā)現(xiàn)使用日本日歷不再有效,那么我們會(huì)注意到這個(gè)事實(shí);我們不一定會(huì)修復(fù)它,但我們不會(huì)告訴您產(chǎn)品(或客戶或平臺(tái))不受支持。


查看完整回答
反對(duì) 回復(fù) 2022-03-10
?
四季花海

TA貢獻(xiàn)1811條經(jīng)驗(yàn) 獲得超5個(gè)贊

這個(gè)類是用 OpenJDK 還是 Sun / Oracle JDK 編譯的,這并不重要。給定版本的 OpenJDK 和相應(yīng)的 Oracle JDK 版本中的 Java 字節(jié)碼編譯器應(yīng)該生成相同的代碼1,如果使用等效選項(xiàng)等調(diào)用的話。編譯器是從相同的源代碼樹構(gòu)建的。

此外,據(jù)我所知,OpenJDK 和 Oracle JDK 編譯器不會(huì)將此信息放入已編譯的類中。深入研究 OpenJDK / Oracle JDK 8 的源代碼樹證實(shí)了這一點(diǎn)。標(biāo)準(zhǔn) javac 編譯器3沒(méi)有發(fā)出相關(guān)的未記錄屬性。


我可以使用相同的(第 3 方)罐子嗎?

是的。使用 OpenJDK 和 Oracle JDK 編譯 JAR 中的類應(yīng)該沒(méi)有區(qū)別。

需要注意的是 Java版本。如果第 3 方 jar 文件支持(比如說(shuō))Java 7,并且您嘗試將它與 Java 8(OpenJDK 或 Oracle)一起使用,那么您可能會(huì)遇到麻煩,您可能需要使用更新版本的 jar。檢查您所依賴的庫(kù)的支持站點(diǎn)2。

而且......當(dāng)然......您應(yīng)該徹底測(cè)試您的應(yīng)用程序,以確定可能(假設(shè))可歸因于更改為 OpenJDK 的任何問(wèn)題。


1 - 由于字節(jié)碼編譯器添加了一些包含源文件和目標(biāo)文件時(shí)間戳的未記錄屬性,因此文件可能不是逐字節(jié)相同的。編譯時(shí)可以抑制這種情況。

2 - 您可能會(huì)發(fā)現(xiàn)庫(kù)供應(yīng)商只會(huì)針對(duì) Oracle JDK 認(rèn)證他們的庫(kù)。如果您發(fā)現(xiàn)這種情況,您可能應(yīng)該直接與他們交談以了解其原因以及對(duì)您使用該庫(kù)的影響。這只能是一個(gè)短期問(wèn)題。(如果供應(yīng)商長(zhǎng)期拒絕支持 OpenJDK 或 Oracle JDK,他們將有可能失去相當(dāng)大比例的客戶。)

3 - 我隱約記得舊的 GNU Jikes 編譯器曾經(jīng)將其他非標(biāo)準(zhǔn)屬性放入“.class”文件中以識(shí)別編譯器,但這無(wú)助于區(qū)分 Oracle JDK 和 OpenJDK 編譯器。


查看完整回答
反對(duì) 回復(fù) 2022-03-10
  • 2 回答
  • 0 關(guān)注
  • 200 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)