導航:首頁 > 源碼編譯 > 編譯openjdk

編譯openjdk

發布時間:2022-02-23 11:00:36

編譯openjdk總是出現這個問題,怎麼解決

編譯openjdk總是出現什麼問題?請把問題貼出來,這樣才好看

㈡ 我為什麼要自己編譯openjdk8以及那些坑

(1)/etc/profileexportjava_HOME=/usr/java/jdk1.7.0_67-cloudera/exportPATH=$PATH:$JAVA_HOME/binexportJRE_HOME="$JAVA_HOME/jre"exportCLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/rt.jar修改完成後,使用source/etc/profile命令進行更新;(2)下面這幾步比較重要,因為在許多linux系統中都預裝了openjdk,所以即使上面進行了這些設置,系統默認的還不是我們要設置的內容;如果要真正使用我們自己的jdk,還需要一下步驟:sudoupdate-alternatives--install/usr/bin/javajava/usr/java/jdk1.7.0_67-cloudera/bin/java300sudoupdate-alternatives--install/usr/bin/javacjavac/usr/java/jdk1.7.0_67-cloudera/bin/javac300(這里的300隻是標識一下,沒什麼意義,只是下一步要用到)(3)大功告成,使用java-version命令來查看我們的java環境變數,顯示如下內容:javaversion"1.7.0_05"Java(TM)SERuntimeEnvironment(build1.7.0_05-b06)JavaHotSpot(TM)ServerVM(build23.1-b03,mixedmode)*對於更新一個/usr/bin/xxx命令指向一個新的路徑可以用sudoupdate-alternatives--configxxx

㈢ openjdk編譯錯誤

JDK安裝程序會把java.exe,javaw.exe,javareg.exe這3個可執行文件拷貝到winnt\system32目錄下,由於winnt\system32被操作系統預設的設置為最高優先權的PATH搜索路徑,以此保證用戶在命令行任何目錄下可運行java.exe來啟動JVM,可能是你的編程軟體和瀏覽器不兼容造成的。

㈣ openJDK 編譯的jar包和oracleJDK編譯的能通用嗎

在此,Oracle與OpenJDK之間的區別
他是從組織、開源、市場等角度比較的,我這里主要從開源、前景、相關源碼底層…等等角度分析,有興趣的朋友可以一起來建議,學習

一、前景
這里我只能拋出幾個疑問點,歡迎大家一起來解決,拋出疑問

1、為什麼 Docker 容器的Java環境,幾乎都是 openJdk ?

2、其實ORACLE jdk是開放了大部分源碼的,openJDK是開放所有源碼的,迄今我所想看到的實現,在Oracle JDK中都是開放源碼的,Oracle JDK沒有開放的部分在哪裡?
答:已解決,Oracle JDK 沒有開放的源碼,在openJDK中的實現,這里先說明一下,OracleJDK只開放了不到7%,後面我會摘錄部分,只是部分哈,有興趣可以安裝一個OpenJDK比較一下區別

3、為什麼 OpenJDK開源了 OracleJDK不想開源的東西,

二、開源
open-source,開源,這是一種共享,集智的概念

openJDK 是對外開放源碼的,Oracle JDK則沒有(部分開源)

三、相關底層架構,實現比較
這里就windows版本分析

3.1-1、Oracle JDK架構1
安裝包就一個,如圖,官網地址
在這里插入圖片描述

3.1-2、Open JDK架構1
鏈接地址,在此
如下圖
在這里插入圖片描述
這里比較出 openJDK的JRE和JDK是分開放的

3.2 Oracle JDK 與 Open JDK 目錄結構比較
在這里插入圖片描述

這里看得出 Oracle JDK 是基於 SDK(Jar)進行版本的維護的,部分提供了源碼集
OpenJDK 是基於 package 進行版本維護,提供了所有的源碼集,目錄更清晰,部分實現還變更於與Oracle JDK 不同的包下,後面我摘出部分事例參考

還要注意 IntelliJ IDEA 中也集成了部分的 SDK,注意開發時確保正確的開發環境

3.3 JVM
openJDK已經不顯示 JVM了

在這里插入圖片描述

3.4 不同的命令行操作
在這里插入圖片描述

四、常用對象的不同的實現(OracleJDK源碼在OpenJDK中的不同實現)
摘錄部分,常用對象,這里總結會有點亂(我還沒仔細地觀察真正的源碼區別)

4.1、Object
在這里插入圖片描述

4.2、ArrayLi

㈤ 如何交叉編譯openjdk 使之能在arm-Linux中運行

直接下載OpenJDK8源碼肯定不通過。有一個專門的移植工程:

hg clone http://hg.openjdk.java.net/aarch64-port/jdk8/

hg clone http://hg.openjdk.java.net/aarch64-port/jdk8u/


這個有時無法下載,使用:

https://github.com/AdoptOpenJDK/openjdk-aarch64-jdk8u

關於OpenJDK的編譯,這個博客記錄最為詳細,所有問題都有解決辦法:

網頁鏈接

㈥ 如果在 Linux快速搭建 java openjdk 編譯環境

Linux直接打個命令就裝好了呀 很簡單的
比如ubuntu,打sudo install openjdk-7-jdk
或者你在軟體中心,點下安裝按鈕也行
Linux下面裝軟體最方便了

㈦ 為什麼Android5.0源碼編譯只能使用openjdk,不能使用oracle-jdk

1)設置cache
cd aosp
prebuilts/misc/linux-x86/ccache/ccache -M 50G
2)初始化編譯環境
. build/envsetup.sh
3)選擇編譯目標包
ps:lunch的方式有很多中,可以使用lunch命令查看,我使用最常用的
lunch aosp_arm-eng

㈧ 如何用Mac完美編譯OpenJDK 7

1.選擇OSX版本很重要。目前這里Mac版本是10.10,配置好必要信息以後就開始編,結果錯誤滿屏。簡單看過之後發現是編譯C文件的時候參數有誤,於是查了一下,才知道是LLVM版本太新,不兼容低版本的一些編譯參數。照著上面改了點代碼,但是依舊編譯不過。既然高版本不行,就裝個低版本的唄。由於最新的OSX不能裝低版本的Xcode(裝了Xcode才能裝LLVM),所以去下了一個10.8的OSX裝在虛擬機里,然後再裝個Xcode4.4。裝好Xcode以後,要手動下載LLVM安裝。打開Xcode,隨便建立一個空項目,然後打開Preferences,找到如下所示的地方開始安裝第一步咱就這么搞定了。2.安裝X11X11這玩意是unix類os使用的圖形系統,10.8以前的OSX是自帶的,但是從此以後就不自帶了。對應於Mac,你需要裝XQuartz,這個沒有版本限制,去網上下最新版即可。裝這個的原因是當時在編譯PolicyTools的時候出現了如下錯誤:ld:librarynotfoundfor-lX11安裝以後要為X11建立軟連接sudoln-s/usr/X11/include/X11/usr/include/X113.安裝freetype在linux下編譯openjdk的朋友可能遇到過需要安裝freetype的要求,然後安裝下並將安裝目錄加到環境變數里就好了。但是OSX不一樣,freetype單獨安裝實際是沒用的。雖然單獨安裝能讓編譯前的檢查通過,但是到後面還是會出錯,至於原因我沒找到。那怎麼呢?實際上如果安裝好X11,freetype就一起安裝好了,大家可以去X11的目錄里看看是否有freetype。雖然說安裝了X11就自帶freetype,但是編譯過程中可能會出現如下錯誤:error:freetype/config/ftheader.h:Nosuchfileordirectory實際上就是目錄問題,執行下面這句命令就好了:sudoln-s/sr/X11/include/freetype2/freetype//usr/X11/include/freetype4.配置環境變數和在Linux下編譯相比,OSX的環境變數配置相對來說簡單很多。只需要配置編譯需要的jdk和llvm的目錄就可以了。因為很多源代碼都是用本機現有的jdk來編譯,所以預裝一個低版本的jdk是必須的,這里我們需要安裝jdk6。安裝好以後,找到其安裝目錄,並添加如下環境變數:[plain]viewplainexportALT_BOOTDIR=/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home通常來說安裝目錄都應該在/System/Library/Java/JavaVirtualMachines目錄下。如果不在的話,有個技巧可以找到。因為安裝好jdk以後,系統會自動在/usr/bin下建立指向java命令的軟連接,所以執行「ls-l/usr/bin/java」就能看到這個命令指向哪,然後這么順著找下去就能找到。llvm是編譯C類文件所必須的,所以要把它的所在目錄添加到環境變數里。通常OSX下安裝app都會把app移到Applications目錄下,所以我最初安裝Xcode的時候也把他移進去了,如果你把Xcode放在了別的目錄,那就找到對應的目錄即可。[plain]viewplainexportALT_COMPILER_PATH=/Applications/Xcode.app/Contents/Developer/usr/bin5.獲取編譯源碼按照這上面的第三點獲取源代碼如果沒有裝hg的需要自行安裝到現在為止,編譯前的准備工作已經完成。我們可以先執行makesanity執行下編譯前的檢查。如果檢查通過,先來看看具體的編譯命令:[plain]viewplainmakeALLOW_DOWNLOADS=trueSA_APPLE_BOOT_JAVA=trueSKIP_DEBUG_BUILD=falseSKIP_FASTDEBUG_BUILD=falseALWAYS_PASS_TEST_GAMMA=trueHOTSPOT_BUILD_JOBS=`sysctl-nhw.ncpu`這里有兩個問題:a.ALLOW_DOWNLOADS=true表示編譯過程中允許下載。因為有些編譯模塊,比如jaxp,編譯腳本中指定了需要下載特定的包。雖然我沒試過設置成false會不會影響編譯,但是還是推薦設置成true。但是這就帶來另一個問題,下載這類包很費時間,有時候就會在那卡很長時間,所以我根據編譯日誌找到編譯腳本中控制下載的具體命令,修改修改並且把用迅雷下的對應包放到正確目錄中,然後重新編譯一遍,就能順利通過了。這一點後面我會詳說。b.SKIP_DEBUG_BUILD=falseSKIP_FASTDEBUG_BUILD=false這兩個表示編譯出來的jdk或者hotspot是否可以debug。FASTDEBUG表示的應該是提供簡單的debug功能,如果想要完整的debug,則SKIP_DEBUG_BUILD必須設置為false。不過這里提醒一點,如果想在debugjdk的時候能看到debug信息,比如變數名等,只需要SKIP_FASTDEBUG_BUILD設置為false就可以了如果這兩個問題都不是問題,那麼就可以按回車了。如果debug和fastdebug都是false,再加上用虛擬機編譯,所以需要的時間會比較長,你也許需要找一部長一點的電影來消磨一下了。最後編譯出來的結果是這樣的:j2sdk-image就是自己編譯出來的jdk,可以直接用了。至於其他目錄下的內容,各位自己琢磨吧。現在來說下ALLOW_DOWNLOADS=true引起的問題。但是遇到下載很久的包總共有三個:jaxp145_01.zip、jdk7-jaf-2010_08_19.zip、jdk7-jaxws2_2_4-b03-2011_05_27.zip之前說過可以修改編譯腳本跳過下載並且用我們已經下載好的,但是實際編譯過程中,這三個包對應的的編譯腳本是動態生成的,所以只能等到他卡在那了,才能停下來並找到腳本修改之。因此因為這三個包,總共需要停3次。,比起一直卡在那好太多了。假設編譯的是普通版本,即非DEBUG和非FASTDEBUG。下面以jaxp145_01.zip為例子講一下怎麼修改對應腳本:腳本所在位置:openjdk根目錄/build/macosx-universal/jaxp/build/xml_generated/build-drop-jaxp_src.xml

㈨ centos7 編譯 openjdk8, make all 報錯

你是要安裝java環境吧

閱讀全文

與編譯openjdk相關的資料

熱點內容
伺服器怎麼設置內網穿透 瀏覽:749
pdf轉jpg工具注冊碼 瀏覽:405
php上傳進度百分比 瀏覽:921
江蘇伺服器陣列卡驅動雲主機 瀏覽:414
魔獸世界怎麼切換回伺服器 瀏覽:224
如何使用java編程 瀏覽:189
win8c語言編程軟體 瀏覽:405
cc是程序員必須學會的語言嗎 瀏覽:592
廣東源碼論壇小程序 瀏覽:421
美團打車什麼時候出的APP 瀏覽:370
chromejava插件安裝 瀏覽:374
帥氣牛仔用什麼app 瀏覽:503
伺服器read卡怎麼查看型號 瀏覽:706
zcat命令 瀏覽:112
單片機程序案例 瀏覽:123
透傳程序員 瀏覽:749
java連接字元串數組 瀏覽:752
無法連接到版本伺服器是什麼原因 瀏覽:476
壓縮機起動兩分鍾停機為什麼 瀏覽:279
筆記本沒串口怎麼寫單片機程序 瀏覽:854