運行編譯openjdk12-33

編譯環境

ubuntu20

Ubuntu里用戶可以自行選擇安裝GCC或CLang來進行編譯,但必須確保最低的版本為GCC 4.8或者CLang 3.2以上,官方推薦使用GCC 7.8或者CLang 9.1來完成編譯。

源碼

https://github.com/openjdk/jdk/tree/jdk-12%2B33

安裝gcc

sudo apt-get install build-essential

在編譯過程中需要依賴FreeType、CUPS等若干第三方庫

sudo apt-get install libfreetype6-dev
sudo apt-get install libcups2-dev
#libxll-dev這個找不到  不影響就先不管
sudo apt-get install libxll-dev 
sudo apt-get install libxext-dev 
sudo apt-get install libxrender-dev 
sudo apt-get install libxrandr-dev 
sudo apt-get install libxtst-dev 
sudo apt-get install libxt-dev
sudo apt-get install libasound2-dev
sudo apt-get install libffi-dev
sudo apt-get install autoconf

安裝openjdk11

sudo apt-get install openjdk-11-jdk

查看參數

#運行查看參數
bash configure --help

報錯了

執行下列代碼

sudo apt-get install autoconf

?然后繼續執行bash configure --help 就可以看到參數了

參數詳解

參數值默認值可選值參數含義
--with-debug-level=<level>releaserelease、fastdebug、slowde-bug設置編譯的級別,越往后進行的優化措施就越少,帶的調試信息就越多,還有一些虛擬機調試參數必須在特定模式下才可以使用
·--enable-debug等效于--with-debug-level=fastdebug
--with-native-debug-symbols=<method>none、internal、external、zipped確定調試符號信息的編譯方式
--with-version-string=<string>設置編譯JDK的版本號,譬如java-version的輸出就會顯示該信息;這個參數還有--with-version-?<part>=<value>的形式,其中part可以是pre、opt、build、major、minor、security、patch之一,用于設置版本號的某一個部分。
--with-jvm-variants=<variant>[,<variant>...]server、client、minimal、core、zero、custom編譯特定模式(Variants)的HotSpot虛擬機,可以多個模式并存
--with-jvm-features=<feature>[,<feature>...]針對--with-jvm-variants=custom時的自定義虛擬機特性列表(Features),可以多個特性并存,由于可選值較多,請參見help命令輸出
--with-target-bits=<bits>指明要編譯32位還是64位的Java虛擬機,在64位機器上也可以通過交叉編譯生成32位的虛擬機
--with-<lib>=<path>boot-jd、freetype、cups、x、alsa、libffi、jtreg、libjpeg、giflib、libpng、lcms、zlib用于指明依賴包的具體路徑,通常使用在安裝了多個不同版本的Bootstrap JDK和依賴包的情況
·--with-extra-<flagtype>=<flags>其中flagtype可選值為cflags、cxxflags、ldflags,分別代表C、C++和Java代碼的參數用于設定C、C++和Java代碼編譯時的額外編譯器參數
--with-conf-name=<name>指定編譯配置名稱,OpenJDK支持使用不同的配置進行編譯,默認會根據編譯的操作系統、指令集架構、調試級別自動生成一個配置名稱,譬如“linux-x86_64-server-release”,如果在這些信息都相同的情況下保存不同的編譯參數配置,就需要使用這個參數來自定義配置名稱

參數測試

?configure命令承擔了依賴項檢查、參數配置和構建輸出目錄結構等多項職責,如果編譯過程中需要的工具鏈或者依賴項有缺失,
?命令執行后將會得到明確的提示,并且給出該依賴的安裝命令

bash configure --enable-debug --with-jvm-variants=server

會報錯

apt-get install zip

然后會提示如下

按照錯誤提示的安裝即可

sudo apt-get install libfontconfig1-dev

?然后繼續執行bash命令

如果一切順利的話,就會收到配置成功的提示,并且輸出調試級別,Java虛擬機的模式、特性,使用的編譯器版本等配置摘要信息,如下所示:

編譯

#清理目錄
make clean
make dist-clean#編譯
make product-images#producet-images可替換為下列的
hotspot:只編譯HotSpot虛擬機
hotspot-<variant>:只編譯特定模式的HotSpot虛擬機
docs-image:產生JDK的文檔鏡像
test-image:產生JDK的測試鏡像
all-images:相當于連續調用product、docs、test三個編譯目標
bootcycle-images:編譯兩次JDK,其中第二次使用第一次的編譯結果作為Bootstrap JDK
clean:清理make命令產生的臨時文件
dist-clean:清理make和configure命令產生的臨時文件

?

緊接著

build/配置名稱/jdk? ?目錄下

就可以看到完整的編譯結果了,把它復制到JAVA_HOME目錄,就可以作為一個完整的JDK來使用

運行

---------------------------持續更新20240605-------------------------------------------------------------

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/22955.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/22955.shtml
英文地址,請注明出處:http://en.pswp.cn/web/22955.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

人工智能的未來發展前景:機遇與挑戰

人工智能&#xff08;AI&#xff09;的發展在過去的幾十年里取得了突飛猛進的成就&#xff0c;已經成為推動全球科技創新的關鍵動力之一。隨著技術的不斷進步和應用的日益廣泛&#xff0c;AI的未來發展前景顯得更加廣闊&#xff0c;同時也面臨一系列新的機遇和挑戰。 技術革新…

使用neural_network_console訓練模型并導出.nnb文件應用于索尼spresense

一.創建數據集 首先你需要一個csv標記的數據集 然后我們使用neural_network_console將數據集進行處理 dataset->create dataset->image 用戶可以通過該界面選擇源目錄&#xff08;Source Dir&#xff09;&#xff0c;輸出目錄&#xff08;Output Dir&#xff09;&…

哈希表、HashMap\Map-1657. 確定兩個字符串是否接近

題目鏈接及描述 1657. 確定兩個字符串是否接近 - 力扣&#xff08;LeetCode&#xff09; 題目分析 今日看到這道題目&#xff0c;乍一看覺得非常熟悉&#xff0c;對于將一個字符串轉換為另一個字符串的題目之前做過一些。分析題目&#xff0c;題目中所述就是兩種操作&#xff…

ubuntu藍牙連接問題

ubuntu藍牙連接問題 ubuntu藍牙連接問題1、安裝驅動2、優化藍牙配置文件3、解決 Failed to connect: org.bluez.Error.Failed ubuntu藍牙連接問題 之前我發現電腦有藍牙圖標&#xff0c;且能打開關閉&#xff0c;就以為藍牙默認已經配置好了&#xff0c;直到有一天我嘗試連接我…

嵌入式軟件跳槽求指導?

嵌入式軟件行業的跳槽確實需要一些特定的策略和技巧。我這里有一套嵌入式入門教程&#xff0c;不僅包含了詳細的視頻講解&#xff0c;項目實戰。如果你渴望學習嵌入式&#xff0c;不妨點個關注&#xff0c;給個評論222&#xff0c;私信22&#xff0c;我在后臺發給你。 因為這個…

【設計模式】裝飾器模式(結構型)??

文章目錄 1.概念1.1 什么是裝飾器模式1.2 優點與缺點 2.實現方式3. Java 哪些地方用到了裝飾器模式4. Spring 哪些地方用到了裝飾器模式 1.概念 1.1 什么是裝飾器模式 它允許用戶在不修改現有對象的代碼的情況下向對象添加新的功能&#xff1b;這種模式是通過創建一個包含該對…

前端面試題日常練-day53 【面試題】

題目 希望這些選擇題能夠幫助您進行前端面試的準備&#xff0c;答案在文末 1. 在PHP中&#xff0c;以下哪個函數可以用于從一個數組的末尾刪除一個元素并返回被刪除的元素&#xff1f; a) array_pop() b) array_push() c) array_shift() d) array_unshift() 2. 在PHP中&…

列存在 OceanBase 數據庫架構中的應用與演進

OceanBase 4.3 版本上線了列存功能&#xff0c;以滿足實時分析的需求。 本文作為《特性解讀&#xff1a;列存技術》的后續&#xff0c;將詳細闡述列存技術在OceanBase數據庫架構中的應用、發展歷程&#xff0c;以及未來的趨勢。 一、前言 1970 年&#xff0c;關系模型之父 Co…

LeakSearch:針對網絡公開憑證的安全掃描與檢測工具

關于LeakSearch 在紅隊演戲過程中&#xff0c;往往需要獲取到針對目標域的訪問權限。在這個過程中&#xff0c;很多紅隊人員會選擇使用暴露在互聯網上的代理服務器來實現目標域的訪問&#xff0c;那么此時就需要在互聯網上收集公開暴露的憑證信息。 對于藍隊來說&#xff0c;…

Playwright+Python+Pytest:基礎方法二次封裝簡化及鏈式調用

引言 隨著Web應用的日益復雜化&#xff0c;自動化測試成為了確保軟件質量的關鍵環節。Playwright 是一個強大的自動化庫&#xff0c;它支持在 Chromium、Firefox 和 WebKit 中運行自動化腳本。本文將介紹如何使用 Playwright 的 Python 同步 API 來簡化點擊和填充操作&#xf…

阿里云郵件推送配置教程:API配置的步驟?

阿里云郵件推送服務如何使用&#xff1f;如何配置郵件推送服務&#xff1f; 阿里云提供了強大的郵件推送服務&#xff0c;幫助企業高效地發送郵件通知、驗證碼、營銷活動等。Aok將詳細介紹阿里云郵件推送的配置教程&#xff0c;以及API配置的步驟&#xff0c;同時簡要提及AokS…

數據流圖要點和難點實際應用

數據流圖(Data Flow Diagram,DFD)是一種圖形化表示信息系統中數據流動和處理的方式。它主要用于描述系統如何接收輸入數據,經過一系列的處理步驟,然后產生輸出數據。數據流圖在系統設計階段特別有用,因為它可以幫助開發人員、業務分析師和其他利益相關者更好地理解系統的…

Python字符串數據類型之字符串

四、Python數據類型 4.1、Python內置數據類型 整型&#xff1a;int浮點型&#xff1a;float布爾類型&#xff1a;bool字符串&#xff1a;str二進制類型&#xff1a;bytes、bytearray復數&#xff1a;complex列表&#xff1a;list元組&#xff1a;tuple字典&#xff1a;dict a…

C#WPF控件Textbox綁定浮點型數據限制小數位方法

本文講解C#WPF控件Textbox綁定浮點型數據限制小數位方法。 XAML中,使用StringFormat來格式化TextBox的文本 <Window x:Class="WpfApp.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.m…

【使用 uiautomator2 腳本進行波點音樂app自動化操作的教程】

本教程將指導您使用 uiautomator2 庫編寫腳本&#xff0c;實現自動化操作。如果您需要在設備斷開連接或出現異常時重新連接設備并繼續執行任務&#xff0c;這里有一份詳細的代碼示例和使用說明。 環境準備 安裝 Python&#xff1a; 確保您的系統上安裝了 Python&#xff08;推…

[數據集][目標檢測]盲道檢測數據集VOC+YOLO格式2173張1類別

數據集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路徑的txt文件&#xff0c;僅僅包含jpg圖片以及對應的VOC格式xml文件和yolo格式txt文件) 圖片數量(jpg文件個數)&#xff1a;2173 標注數量(xml文件個數)&#xff1a;2173 標注數量(txt文件個數)&#xff1a;2173 標注…

基于R語言BIOMOD2 及機器學習方法的物種分布模擬與案例分析實踐技術

BIOMOD2是一個R軟件包&#xff0c;用于構建和評估物種分布模型&#xff08;SDMs&#xff09;。它集成了多種統計和機器學習方法&#xff0c;如GLM、GAM、SVM等&#xff0c;允許用戶預測和分析物種在不同環境條件下的地理分布。通過這種方式&#xff0c;BIOMOD幫助研究者評估氣候…

常用接口測試及接口抓包常用的測試工具

一、常用抓包工具 01、F12 Web端的話&#xff0c;google瀏覽器直接F12開發者模式 點擊network進行抓包分析。 02、Fiddler抓包工具 客戶端和服務端的http代理&#xff0c;客戶端所有的請求都要先經過Fiddler&#xff0c;到響應的服務端&#xff0c;然后端返回的所有數據也都…

pytorch數學操作

文章目錄 1.torch.bitwise_not()2.torch.bitwise_and()3.torch.ceil()3.torch.clamp()4.torch.torch.floor() 1.torch.bitwise_not() 在 PyTorch 中&#xff0c;torch.bitwise_not() 是一個函數&#xff0c;用于執行逐元素的位非&#xff08;bitwise NOT&#xff09;操作。 t…

如何組織基于Sqlalchemy的項目

在使用 SQLAlchemy 構建項目時&#xff0c;可以遵循一些常用的組織結構和最佳實踐&#xff0c;以確保項目清晰、易于維護。下面就是我在構建項目時遇到的一些問題&#xff0c;并做了詳細的記錄&#xff0c;為了方便大家學習少走一些彎路。 1、問題背景 在基于Sqlalchemy的項目…