linuxopenjdk編譯
下載vmware解壓後根據提示正觸安裝vmware到硬碟中
(1)
建立虛擬機
a.用滑鼠左建雙擊桌面中的"vmware
workstation"圖標,運行虛擬機
b.建立一台虛擬機。點擊「file(文件)」-「new(新建)」--「newvirtual
machine(
新建虛擬機)」,彈出虛擬機創建菜單。
c.根據向導一步一步地創建虛擬機,首先選擇安裝方式是「typical(典型)」還是
「custom(自定義)」安裝。
我這里選擇典型。
d.因為這里是用於安裝redhat,所以在guest
operating
system(客戶操作系統)「
中選擇」linux「,點擊下一步。
e.在virtual
machine
name(虛擬機名字)中輸入你想建立的虛擬機的名字
f.在location(位置)中選擇虛擬機的安裝位置。因為會在虛擬機中安裝操作系統
和應用軟體,所以建議將虛擬機安裝在一個有較大空間的磁碟分區中
g.如果你的電腦連接在網路中,那麼選擇一個合適的網路環境。我這里選擇
use
bridged
net-working(使用路由網路)
h.點擊finish,返回vmware主界面,linux虛擬機就建好了。
2.
安裝操作系統
a.
選中linux虛擬機,點擊vmware工具欄中的power
on按鈕,啟動linux虛擬機
b.然後插入redhat7.3光碟,虛擬系統根據你選擇的安裝方式開始安裝。
3.從硬碟安裝redhat7.3
如果你認為從光碟機中安裝比較費時間,又不方便,那你可以將光碟文件轉換成iso文件拷
貝在硬碟中,然後從硬碟安裝。
a.點擊settings(設置)--configuration
editor(編輯配置)進入設置界面對虛擬機進行
配置。
b.在hardware(硬體)選項中,選擇dvd/cd--rom[ide
1:0]項,在左邊的選項中進行設置。
c.在connection(連接)選項選中use
iso
image(使用iso鏡像包),然後點擊browse(預覽)
按鈕,找到放置iso文件的目錄。
d.在打開對話框中選擇redhat.iso文件,然後點擊打開,將iso文件打開(如果第一個iso
文件安裝完後,計算機提示你插入第二張光碟,則在此選擇redhat.iso,如此類推)
e.在virtual
device
mode(虛擬設備模式)選擇虛擬設備的介面方式,選擇ideo:0項
然後點擊ok返回到虛擬機界面下,點擊power
on就可以直接從硬碟安裝操作系統了
Ⅱ 如果在 Linux快速搭建 java openjdk 編譯環境
Linux直接打個命令就裝好了呀 很簡單的
比如ubuntu,打sudo install openjdk-7-jdk
或者你在軟體中心,點下安裝按鈕也行
Linux下面裝軟體最方便了
Ⅲ 編譯openjdk總是出現這個問題,怎麼解決
(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
Ⅳ win7 下面怎麼編譯一個openjdk
好久沒有在windows下編過了,以前我是找vs2010 express來編的,遇到過類似的問題,不
過時間太長不確認是不是同一個了。
你可以看一下對應makefile裡面COMPILER_VERSION是怎麼獲取的。我印象中是根據cl.exe
的輸出然後截取字元串來確認版本的,在某些版本/語言下,字元串與makefile代碼中的預
期不一致,導致這個變數沒有寫進去。
詳細一些的攻略可以看我這篇文章4
不過我衷心建議你搞個linux來編,我在ubuntu10.10下需要的東西一個apt-get就結束了,
win下找各種依賴的東西很費時間,尤其是編那個破freetype。
Ⅳ Linux下的JDK和OpenJDK有什麼具體的區別
OpenJDK是JDK的開放原始碼版本,以GPL(General
Public
License)協議的形式放出(題主提到的open就是指的開源)。在JDK7的時候,OpenJDK已經作為JDK7的主幹開發,SUN
JDK7是在OpenJDK7的基礎上發布的,其大部分原始碼都相同,只有少部分原始碼被替換掉。使用JRL(JavaResearch
License,Java研究授權協議)發布。至於OpenJDK6則更是有其復雜的一面,首先是OpenJDK6是JDK7的一個分支,並且盡量去除Java
SE7的新特性,使其盡量的符合Java6的標准。關於JDK和OpenJDK的區別,可以歸納為以下幾點:
授權協議的不同:OpenJDK採用GPL
V2協議放出,而SUN
JDK則採用JRL放出。兩者協議雖然都是開放源代碼的,但是在使用上的不同在於GPL
V2允許在商業上使用,而JRL只允許個人研究使用。
OpenJDK不包含Deployment(部署)功能:部署的功能包括:Browser
Plugin、Java
Web
Start、以及Java控制面板,這些功能在OpenJDK中是找不到的。
OpenJDK源代碼不完整:這個很容易想到,在採用GPL協議的OpenJDK中,SUN
JDK的一部分源代碼因為產權的問題無法開放給OpenJDK使用,其中最主要的部份就是JMX中的可選元件SNMP部份的代碼。因此這些不能開放的源代碼
將它作成plug,以供OpenJDK編譯時使用,你也可以選擇不要使用plug。而Icedtea則為這些不完整的部分開發了相同功能的源代碼
(OpenJDK6),促使OpenJDK更加完整。
部分源代碼用開源代碼替換:由於產權的問題,很多產權不是SUN的源代碼被替換成一些功能相同的開源代碼,比如說字體柵格化引擎,使用Free
Type代替。
OpenIDK只包含最精簡的JDK:OpenJDK不包含其他的軟體包,比如Rhino
Java
DB
JAXP……,並且可以分離的軟體包也都是盡量的分離,但是這大多數都是自由軟體,你可以自己下載加入。
不能使用Java商標:這個很容易理解,在安裝OpenJDK的機器上,輸入「java
-version」顯示的是OpenJDK,但是如果是使用Icedtea補丁的OpenJDK,顯示的是java。
總之,在Java體系中,還是有很多不自由的成分,源代碼的開發不夠徹底,希望Oracle能夠讓JCP更自由開放一些,這也是所有Java社區所希望的。
Ⅵ 如何用Mac完美編譯OpenJDK 7
1.選擇OS X版本很重要。
目前這里Mac版本是10.10,配置好必要信息以後就開始編,結果錯誤滿屏。簡單看過之後發現是編譯C文件的時候參數有誤,於是查了一下,才知道是LLVM版本太新,不兼容低版本的一些編譯參數。照著上面改了點代碼,但是依舊編譯不過。既然高版本不行,就裝個低版本的唄。由於最新的OS X不能裝低版本的Xcode(裝了Xcode才能裝LLVM),所以去下了一個10.8的OS X裝在虛擬機里,然後再裝個Xcode4.4。
裝好Xcode以後,要手動下載LLVM安裝。打開Xcode,隨便建立一個空項目,然後打開Preferences,找到如下所示的地方開始安裝
第一步咱就這么搞定了。
2.安裝X11
X11這玩意是unix類os使用的圖形系統,10.8以前的OS X是自帶的,但是從此以後就不自帶了。對應於Mac,你需要裝XQuartz,這個沒有版本限制,去網上下最新版即可。裝這個的原因是當時在編譯PolicyTools的時候出現了如下錯誤:
ld: library not found for -lX11
安裝以後要為X11建立軟連接
sudo ln -s /usr/X11/include/X11 /usr/include/X11
3.安裝freetype
在linux下編譯openjdk的朋友可能遇到過需要安裝freetype的要求,然後安裝下並將安裝目錄加到環境變數里就好了。但是OS X不一樣,freetype單獨安裝實際是沒用的。雖然單獨安裝能讓編譯前的檢查通過,但是到後面還是會出錯,至於原因我沒找到。那怎麼辦呢?實際上如果安裝好X11,freetype就一起安裝好了,大家可以去X11的目錄里看看是否有freetype。
雖然說安裝了X11就自帶freetype,但是編譯過程中可能會出現如下錯誤:
error: freetype/config/ftheader.h: No such file or directory
實際上就是目錄問題,執行下面這句命令就好了:
sudo ln -s /sr/X11/include/freetype2/freetype/ /usr/X11/include/freetype
4. 配置環境變數
和在Linux下編譯相比,OS X的環境變數配置相對來說簡單很多。只需要配置編譯需要的jdk和llvm的目錄就可以了。
因為很多源代碼都是用本機現有的jdk來編譯,所以預裝一個低版本的jdk是必須的,這里我們需要安裝jdk6。安裝好以後,找到其安裝目錄,並添加如下環境變數:
[plain] view plain
export ALT_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類文件所必須的,所以要把它的所在目錄添加到環境變數里。通常OS X下安裝app都會把app移到Applications目錄下,所以我最初安裝Xcode的時候也把他移進去了,如果你把Xcode放在了別的目錄,那就找到對應的目錄即可。
[plain] view plain
export ALT_COMPILER_PATH=/Applications/Xcode.app/Contents/Developer/usr/bin
5.獲取編譯源碼
按照這上面的第三點獲取源代碼 如果沒有裝hg的需要自行安裝
到現在為止,編譯前的准備工作已經完成。我們可以先執行make sanity執行下編譯前的檢查。如果檢查通過,先來看看具體的編譯命令:
[plain] view plain
make ALLOW_DOWNLOADS=true SA_APPLE_BOOT_JAVA=true SKIP_DEBUG_BUILD=false SKIP_FASTDEBUG_BUILD=false ALWAYS_PASS_TEST_GAMMA=true HOTSPOT_BUILD_JOBS=`sysctl -n hw.ncpu`
這里有兩個問題:
a. ALLOW_DOWNLOADS=true表示編譯過程中允許下載。因為有些編譯模塊,比如jaxp,編譯腳本中指定了需要下載特定的包。雖然我沒試過設置成false會不會影響編譯,但是還是推薦設置成true。但是這就帶來另一個問題,下載這類包很費時間,有時候就會在那卡很長時間,所以我根據編譯日誌找到編譯腳本中控制下載的具體命令,修改修改並且把用迅雷下的對應包放到正確目錄中,然後重新編譯一遍,就能順利通過了。這一點後面我會詳說。
b. SKIP_DEBUG_BUILD=false SKIP_FASTDEBUG_BUILD=false這兩個表示編譯出來的jdk或者hotspot是否可以debug。FASTDEBUG表示的應該是提供簡單的debug功能,如果想要完整的debug,則SKIP_DEBUG_BUILD必須設置為false。不過這里提醒一點,如果想在debug jdk的時候能看到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
Ⅶ Linux sun jdk和open jdk 會不會沖突導致oracle安裝失敗呢
不會沖突,使用的時候是需要制定主目錄的,指向那個jdk就用哪個版本。
openjdk是jdk的開放原始碼版本,以GPL協議的形式放出。在JDK7的時候,openjdk已經成為jdk7的主幹開發,sun jdk7是在openjdk7的基礎上發布的,其大部分原始碼都相同,只有少部分原始碼被替換掉。使用JRL(JavaResearch License,Java研究授權協議)發布。
關於JDK和OpenJDK的區別,可以歸納為以下幾點:
1、授權協議的不同:
openjdk採用GPL V2協議放出,而JDK則採用JRL放出。兩者協議雖然都是開放源代碼的,但是在使用上的不同在於GPL V2允許在商業上使用,而JRL只允許個人研究使用。
OpenJDK不包含Deployment(部署)功能:
部署的功能包括:Browser Plugin、Java Web Start、以及Java控制面板,這些功能在Openjdk中是找不到的。
2、OpenJDK源代碼不完整:
這個很容易想到,在採用GPL協議的Openjdk中,sun jdk的一部分源代碼因為產權的問題無法開放openjdk使用,其中最主要的部份就是JMX中的可選元件SNMP部份的代碼。因此這些不能開放的源代碼將它作成plug,以供OpenJDK編譯時使用,你也可以選擇不要使用plug。而Icedtea則為這些不完整的部分開發了相同功能的源代碼(OpenJDK6),促使OpenJDK更加完整。
3、部分源代碼用開源代碼替換:
由於產權的問題,很多產權不是SUN的源代碼被替換成一些功能相同的開源代碼,比如說字體柵格化引擎,使用Free Type代替。
openjdk只包含最精簡的JDK:
OpenJDK不包含其他的軟體包,比如Rhino Java DB JAXP……,並且可以分離的軟體包也都是盡量的分離,但是這大多數都是自由軟體,你可以自己下載加入。
4、不能使用Java商標:
這個很容易理解,在安裝openjdk的機器上,輸入「java -version」顯示的是openjdk,但是如果是使用Icedtea補丁的openjdk,顯示的是java。(未驗證)
總之,在Java體系中,還是有很多不自由的成分,源代碼的開發不夠徹底,希望Oracle能夠讓JCP更自由開放一些,這也是所有Java社區所希望的。
Ⅷ linux編譯openjdk7 報錯undefined reference to不知道怎麼添加引用
將 int mian() 修改為 int main()
Ⅸ 如何交叉編譯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的編譯,這個博客記錄最為詳細,所有問題都有解決辦法:
網頁鏈接