锘??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲欧美国产国产综合一区,日韩在线视精品在亚洲,亚洲国产成人私人影院http://m.tkk7.com/jiangshachina/category/54943.html鍚屾槸Java鐖卞ソ鑰咃紝鐩擱綍蹇呮浘鐩歌瘑錛?lt;br>    a cup of Java, cheers!zh-cnSun, 08 Nov 2015 04:23:30 GMTSun, 08 Nov 2015 04:23:30 GMT60Play OpenJDK: 鍏佽浣犵殑鍖呭悕浠?java."寮澶?鍘?http://m.tkk7.com/jiangshachina/archive/2015/11/01/428010.htmlSha JiangSha JiangSun, 01 Nov 2015 12:06:00 GMThttp://m.tkk7.com/jiangshachina/archive/2015/11/01/428010.htmlhttp://m.tkk7.com/jiangshachina/comments/428010.htmlhttp://m.tkk7.com/jiangshachina/archive/2015/11/01/428010.html#Feedback0http://m.tkk7.com/jiangshachina/comments/commentRss/428010.htmlhttp://m.tkk7.com/jiangshachina/services/trackbacks/428010.html
Play OpenJDK: 鍏佽浣犵殑鍖呭悕浠?java."寮澶?/span>

鏈枃鏄疨lay OpenJDK鐨勭浜岀瘒錛屼粙緇嶄簡濡備綍紿佺牬JDK涓嶅厑璁歌嚜瀹氫箟鐨勫寘鍚嶄互"java."寮澶磋繖涓闄愬埗銆傝繖涓鎶宸у浜庡熀浜庡凡鏈夌殑JDK鍚慾ava.*涓坊鍔犳柊綾昏繕鏄湁鎵甯姪鐨勩?2015.11.02鏈鍚庢洿鏂?

鏃犺鏄粡楠屼赴瀵岀殑Java紼嬪簭鍛橈紝榪樻槸Java鐨勫垵瀛﹁咃紝鎬諱細鏈変竴浜涗漢鎴栨湁鎰忔垨鏃犳剰鍦板垱寤轟竴涓寘鍚嶄負"java"鐨勭被銆備絾鍑轟簬瀹夊叏鏂歸潰鐨勮冭檻錛孞DK涓嶅厑璁稿簲鐢ㄧ▼搴忕被鐨勫寘鍚嶄互"java"寮澶達紝鍗充笉鍏佽java錛宩ava.foo榪欐牱鐨勫寘鍚嶃備絾javax錛宩avaex榪欐牱鐨勫寘鍚嶆槸鍏佽鐨勩?br />
1. 渚嬪瓙
姣斿錛屼互OpenJDK 8涓哄熀紜錛岃噯閫犺繖鏍蜂竴涓緥瀛愩傜瑪鑰呮兂鍚慜penJDK璐$尞涓涓悓姝ョ殑HashMap錛屽嵆綾籗ynchronizedHashMap錛岃岃綾葷殑鍖呭悕灝變負java.util銆係ynchronizedHashMap鏄疕ashMap鐨勫悓姝ヤ唬鐞嗭紝鐢變簬榪欎袱涓被鏄湪鍚屼竴鍖呭唴錛孲ynchronizedHashMap涓嶄粎鍙互璁塊棶HashMap鐨刾ublic鏂規硶涓庡彉閲忥紝榪樺彲浠ヨ闂瓾ashMap鐨刾rotected鍜宒efault鏂規硶涓庡彉閲忋係ynchronizedHashMap鐪嬭搗鏉ュ彲鑳藉儚涓嬮潰榪欐牱錛?br />
package java.util;

public class SynchronizedHashMap<K, V> {

    
private HashMap<K, V> hashMap = null;

    
public SynchronizedHashMap(HashMap<K, V> hashMap) {
        
this.hashMap = hashMap;
    }

    
public SynchronizedHashMap() {
        
this(new HashMap<>());
    }

    
public synchronized V put(K key, V value) {
        
return hashMap.put(key, value);
    }

    
public synchronized V get(K key) {
        
return hashMap.get(key);
    }

    
public synchronized V remove(K key) {
        
return hashMap.remove(key);
    }

    
public synchronized int size() {
        
return hashMap.size; // 鐩存帴璋冪敤HashMap.size鍙橀噺錛岃岄潪HashMap.size()鏂規硶
    }
}

2. ClassLoader鐨勯檺鍒?/span>
浣跨敤javac鍘葷紪璇戞簮鏂囦歡SynchronizedHashMap.java騫舵病鏈夐棶棰橈紝浣嗗湪浣跨敤緙栬瘧鍚庣殑SynchronizedHashMap.class鏃訛紝JDK鐨凜lassLoader鍒欎細鎷掔粷鍔犺澆java.util.SynchronizedHashMap銆?br />璁炬兂鏈夊涓嬬殑搴旂敤紼嬪簭錛?br />
import java.util.SynchronizedHashMap;

public class SyncMapTest {

    
public static void main(String[] args) {
        SynchronizedHashMap
<String, String> syncMap = new SynchronizedHashMap<>();
        syncMap.put(
"Key""Value");
        System.out.println(syncMap.get(
"Key"));
    }
}
浣跨敤java鍛戒護鍘昏繍琛岃搴旂敤鏃訛紝浼氭姤濡備笅閿欒錛?br />
Exception in thread "main" java.lang.SecurityException: Prohibited package name: java.util
    at java.lang.ClassLoader.preDefineClass(ClassLoader.java:
659)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:
758)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:
142)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:
467)
    at java.net.URLClassLoader.access$
100(URLClassLoader.java:73)
    at java.net.URLClassLoader$
1.run(URLClassLoader.java:368)
    at java.net.URLClassLoader$
1.run(URLClassLoader.java:362)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:
361)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:
424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:
331)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:
357)
    at SyncMapTest.main(SyncMapTest.java:
6)
鏂規硶ClassLoader.preDefineClass()鐨勬簮浠g爜濡備笅錛?br />
private ProtectionDomain preDefineClass(String name,
        ProtectionDomain pd)
{
    
if (!checkName(name))
        
throw new NoClassDefFoundError("IllegalName: " + name);

    
if ((name != null&& name.startsWith("java.")) {
        
throw new SecurityException
            (
"Prohibited package name: " +
            name.substring(
0, name.lastIndexOf('.')));
    }
    
if (pd == null) {
        pd 
= defaultDomain;
        }

    
if (name != null) checkCerts(name, pd.getCodeSource());

    
return pd;
}
寰堟竻妤氬湴錛岃鏂規硶浼氬厛媯鏌ュ緟鍔犺澆鐨勭被鍏ㄥ悕(鍗沖寘鍚?綾誨悕)鏄惁浠?java."寮澶達紝濡傛槸錛屽垯鎶涘嚭SecurityException銆傞偅涔堝彲浠ュ皾璇曚慨鏀硅鏂規硶鐨勬簮浠g爜錛屼互紿佺牬榪欎竴闄愬埗銆?br />浠嶫DK涓殑src.zip涓嬁鍑簀ava/lang/ClassLoader.java鏂囦歡錛屼慨鏀瑰叾涓殑preDefineClass鏂規硶浠ュ幓闄ょ浉鍏抽檺鍒躲傞噸鏂扮紪璇慍lassLoader.java錛屽皢鐢熸垚鐨凜lassLoader.class錛孋lassLoader$1.class錛孋lassLoader$2.class錛孋lassLoader$3.class錛孋lassLoader$NativeLibrary.class錛孋lassLoader$ParallelLoaders.class鍜孲ystemClassLoaderAction.class鍘繪浛鎹DK/jre/lib/rt.jar涓搴旂殑綾匯?br />鍐嶆榪愯SyncMapTest錛屽嵈浠嶇劧浼氭姏鍑虹浉鍚岀殑SecurityException錛屽涓嬫墍紺猴細
Exception in thread "main" java.lang.SecurityException: Prohibited package name: java.util
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:
760)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:
142)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:
467)
    at java.net.URLClassLoader.access$
100(URLClassLoader.java:73)
    at java.net.URLClassLoader$
1.run(URLClassLoader.java:368)
    at java.net.URLClassLoader$
1.run(URLClassLoader.java:362)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:
361)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:
424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:
331)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:
357)
    at SyncMapTest.main(SyncMapTest.java:
6)
姝ゆ椂鏄敱鏂規硶ClassLoader.defineClass1()鎶涘嚭鐨凷ecurityException銆備絾榪欐槸涓涓猲ative鏂規硶錛岄偅涔堜粎閫氳繃淇敼Java浠g爜鏄棤娉曡В鍐寵繖涓棶棰樼殑(JDK鐪熸槸灞傚眰璁鵑槻鍟?銆傚師鏉ュ湪Hotspot鐨凜++婧愭枃浠秇otspot/src/share/vm/classfile/systemDictionary.cpp涓湁濡備笅璇彞錛?br />
const char* pkg = "java/";
if (!HAS_PENDING_EXCEPTION &&
    !class_loader.is_null() &&
    parsed_name !
= NULL &&
    !strncmp((const char*)parsed_name->bytes()
, pkg, strlen(pkg))) {
  // It is illegal to define classes in the 
"java." package from
  // JVM_DefineClass or jni_DefineClass unless you're the bootclassloader
  ResourceMark rm(THREAD)
;
  char* name = parsed_name->as_C_string();
  char* index = strrchr(name, '/');
  *index = '\0'; // chop to just the package name
  while ((index = strchr(name, '/')) != NULL) {
    *index 
= '.'; // replace '/' with '.' in package name
  }
  const char* fmt 
= "Prohibited package name: %s";
  size_t len = strlen(fmt) + strlen(name);
  char* message = NEW_RESOURCE_ARRAY(char, len);
  jio_snprintf(message, len, fmt, name);
  Exceptions::_throw_msg(THREAD_AND_LOCATION,
    vmSymbols::java_lang_SecurityException()
, message);
}
淇敼璇ユ枃浠朵互鍘婚櫎鎺夌浉鍏抽檺鍒訛紝騫舵寜鐓ф湰緋誨垪鐨?a href="http://m.tkk7.com/jiangshachina/archive/2015/10/30/427994.html">絎竴綃囨枃绔?/a>涓粙緇嶇殑鏂規硶鍘婚噸鏂版瀯寤轟竴涓狾penJDK銆傞偅涔堬紝榪欎釜鏂扮殑JDK灝嗕笉浼氬啀瀵瑰寘鍚嶆湁浠諱綍闄愬埗浜嗐?br />
3. 瑕嗙洊Java鏍稿績API錛?/strong>
寮鍙戣呬滑鍦ㄤ嬌鐢ㄤ富嫻両DE鏃朵細鍙戠幇錛屽鏋滃伐紼嬫湁澶氫釜jar鏂囦歡鎴栨簮鏂囦歡鐩綍涓寘鍚浉鍚岀殑綾伙紝榪欎簺IDE浼氭牴鎹敤鎴鋒寚瀹氱殑浼樺厛綰ч『搴忔潵鍔犺澆榪欎簺綾匯傛瘮濡傦紝鍦‥clipse涓紝鍙抽敭鐐瑰嚮鏌愪釜Java宸ョ▼-->灞炴?->Java Build Path-->Order and Export錛屽湪榪欓噷璋冩暣鍚勪釜綾誨簱鎴栨簮鏂囦歡鐩綍鐨勪綅緗紝鍗沖彲鎸囧畾鍔犺澆綾葷殑浼樺厛綰с?br />褰撳紑鍙戣呭湪浣跨敤鏌愪釜寮婧愮被搴?jar鏂囦歡)鏃訛紝鎯沖鍏朵腑鏌愪釜綾昏繘琛屼慨鏀癸紝閭d箞灝卞彲浠ュ皢璇ョ被鐨勬簮浠g爜澶嶅埗鍑烘潵錛屽茍鍦↗ava宸ョ▼涓垱寤轟竴涓悓鍚嶇被錛岀劧鍚庢寚瀹欵clipse浼樺厛鍔犳伅鑷繁鍒涘緩鐨勭被銆傚嵆錛屽湪緙栬瘧鏃朵笌榪愯鏃剁敤鑷繁鍒涘緩鐨勭被鍘昏鐩栫被搴撲腑鐨勫悓鍚嶇被銆傞偅涔堬紝鏄惁鍙互濡傛硶鐐埗鍘昏鐩朖ava鏍稿績API涓殑綾誨憿錛?br />鑰冭檻鍘昏鐩栫被java.util.HashMap錛屽彧鏄畝鍗曞湪瀹冪殑put()鏂規硶娣誨姞涓鏉℃墦鍗拌銆傞偅涔堝氨闇瑕佸皢src.zip涓殑java/util/HashMap.java澶嶅埗鍑烘潵錛屽茍鍦ㄥ綋鍓岼ava宸ョ▼涓垱寤轟竴涓悓鍚嶇被java.util.HashMap錛屽茍淇敼put()鏂規硶錛屽涓嬫墍紺猴細
package java.util;

public class HashMap<K,V> extends AbstractMap<K,V>
    
implements Map<K,V>, Cloneable, Serializable {
    .
    
public V put(K key, V value) {
        System.out.printf(
"put - key=%s, value=%s%n", key, value);
        
return putVal(hash(key), key, value, falsetrue);
    }
    
}
姝ゆ椂錛屽湪Eclipse鐜涓紝SynchronizedHashMap浣跨敤鐨刯ava.util.HashMap琚涓烘槸涓婅堪鏂板垱寤虹殑HashMap綾匯傞偅涔堣繍琛屽簲鐢ㄧ▼搴廠yncMapTest鍚庣殑鏈熸湜杈撳嚭搴旇濡備笅鎵紺猴細
put - key=Key, value=Value
Value
浣嗚繍琛孲yncMapTest鍚庣殑瀹為檯杈撳嚭鍗翠負濡備笅錛?br />
Value
鐪嬭搗鏉ワ紝鏂板垱寤虹殑java.util.HashMap騫舵病鏈夎浣跨敤涓娿傝繖鏄負浠涔堝憿錛熻兘澶?鎯沖儚"鍒扮殑鍘熷洜榪樻槸綾誨姞杞藉櫒銆傚叧浜嶫ava綾誨姞杞藉櫒鐨勮璁鴻秴鍑轟簡鏈枃鐨勮寖鍥達紝鑰屼笖鍏充簬璇ヤ富棰樼殑鏂囩珷宸叉槸姹楃墰鍏呮爧錛屼絾鏈枃浠嶄細綆榪板叾瑕佺偣銆?br />Java綾誨姞杞藉櫒鐢變笅鑷充笂鍒嗕負涓変釜灞傛錛氬紩瀵肩被鍔犺澆鍣?Bootstrap Class Loader)錛屾墿灞曠被鍔犺澆鍣?Extension Class Loader)鍜屽簲鐢ㄧ▼搴忕被鍔犺澆鍣?Application Class Loader)銆傚叾涓紩瀵肩被鍔犺澆鍣ㄧ敤浜庡姞杞絩t.jar榪欐牱鐨勬牳蹇冪被搴撱傚茍涓斿紩瀵肩被鍔犺澆鍣ㄤ負鎵╁睍綾誨姞杞藉櫒鐨勭埗鍔犺澆鍣紝鑰屾墿灞曠被鍔犺澆鍣ㄥ張涓哄簲鐢ㄧ▼搴忕被鍔犺澆鍣ㄧ殑鐖跺姞杞藉櫒銆傚悓鏃禞VM鍦ㄥ姞杞界被鏃跺疄琛屽鎵樻ā寮忋傚嵆錛屽綋鍓嶇被鍔犺澆鍣ㄥ湪鍔犺澆綾繪椂錛屼細棣栧厛濮旀墭鑷繁鐨勭埗鍔犺澆鍣ㄥ幓榪涜鍔犺澆銆傚鏋滅埗鍔犺澆鍣ㄥ凡緇忓姞杞戒簡鏌愪釜綾伙紝閭d箞瀛愬姞杞藉櫒灝嗕笉浼氬啀嬈″姞杞姐?br />鐢變笂鍙煡錛屽綋搴旂敤紼嬪簭璇曞浘鍔犺澆java.util.Map鏃訛紝瀹冧細棣栧厛閫愮駭鍚戜笂濮旀墭鐖跺姞杞藉櫒鍘誨姞杞借綾伙紝鐩村埌寮曞綾誨姞杞藉櫒鍔犺澆鍒皉t.jar涓殑java.util.HashMap銆傜敱浜庤綾誨凡緇忚鍔犺澆浜嗭紝鎴戜滑鑷繁鍒涘緩鐨刯ava.util.HashMap灝變笉浼氳閲嶅鍔犺澆銆?br />浣跨敤java鍛戒護榪愯SyncMapTest紼嬪簭鏃跺姞涓奦M鍙傛暟-verbose:class錛屼細鍦ㄧ獥鍙d腑鎵撳嵃鍑哄艦寮忓涓嬬殑璇彞錛?br />
[Opened /home/ubuntu/jdk1.8.0_custom/jre/lib/rt.jar]
[Loaded java.lang.Object from /home/ubuntu/jdk1.8.0_custom/jre/lib/rt.jar]

[Loaded java.util.HashMap from /home/ubuntu/jdk1.8.0_custom/jre/lib/rt.jar]
[Loaded java.util.HashMap$Node from /home/ubuntu/jdk1.8.0_custom/jre/lib/rt.jar]

[Loaded java.util.SynchronizedHashMap from file:/home/ubuntu/projects/test/classes/]
Value
[Loaded java.lang.Shutdown from /home/ubuntu/jdk1.8.0_custom/jre/lib/rt.jar]
[Loaded java.lang.Shutdown$Lock from /home/ubuntu/jdk1.8.0_custom/jre/lib/rt.jar]
浠庝腑鍙互鐪嬪嚭錛岀被java.util.HashMap紜疄鏄粠rt.jar涓姞杞藉埌鐨勩備絾鐞嗚涓婏紝鍙互閫氳繃鑷畾涔夌被鍔犺澆鍣ㄥ幓鎵撶牬濮旀墭妯″紡錛岀劧鑰岃繖灝辨槸鍙︿竴涓瘽棰樹簡銆?/div>


Sha Jiang 2015-11-01 20:06 鍙戣〃璇勮
]]>
Play OpenJDK: 鏋勫緩浣犺嚜宸辯殑JDK(鍘?http://m.tkk7.com/jiangshachina/archive/2015/10/30/427994.htmlSha JiangSha JiangFri, 30 Oct 2015 15:17:00 GMThttp://m.tkk7.com/jiangshachina/archive/2015/10/30/427994.htmlhttp://m.tkk7.com/jiangshachina/comments/427994.htmlhttp://m.tkk7.com/jiangshachina/archive/2015/10/30/427994.html#Feedback0http://m.tkk7.com/jiangshachina/comments/commentRss/427994.htmlhttp://m.tkk7.com/jiangshachina/services/trackbacks/427994.html
Play OpenJDK: 鏋勫緩浣犺嚜宸辯殑JDK

璁″垝浣縋lay OpenJDK鎴愪負涓緇勪粙緇嶅浣曚嬌鐢ㄥ茍鍙備笌OpenJDK欏圭洰鐨勭郴鍒楁枃绔犮傛湰鏂囨槸璇ョ郴鍒楃殑絎竴綃囨枃绔狅紝瀹冨熀浜嶰penJDK 8鐨勬簮浠g爜浠嬬粛浜嗘瀯寤轟竴涓睘浜庤嚜宸辯殑JDK鏂規硶銆?2015.10.30鏈鍚庢洿鏂?

1. OpenJDK
鏇劇粡鐨凷un Microsystems. Inc錛屼篃灝辨槸Java璇█鐨勫彂鏄庤咃紝灝嗗畠鐨凧DK浠g爜璐$尞鍑烘潵錛屾垚绔嬩簡涓涓紑婧愰」鐩紝鍗?a >OpenJDK銆?br />    鍚屾椂錛屽畠涔熸槸涓涓ぞ鍖恒傜浉鍏崇殑鍏徃錛岀粍緇囧拰涓漢鍦ㄨ繖涓ぞ鍖轟腑鍗忎綔寮鍙慜penJDK銆傜ぞ鍖烘牴鎹笉鍚岀殑棰嗗煙鎴栭」鐩彁渚涗簡涓緋誨垪鐨?a >閭歡鍒楄〃錛屽埄鐩婄浉鍏蟲柟鎴栧鍏舵劅鍏磋叮鐨勪釜浜洪兘鍙互璁㈤槄榪欎簺閭歡鍒楄〃鍘昏繘琛屽叧娉ㄥ拰璁ㄨ銆備緥濡傦紝Java鏍稿績API鐨勯偖浠跺垪琛ㄦ槸core-libs-dev@openjdk.java.net錛屽叧浜巎ava.lang錛宩ava.util絳夋牳蹇傾PI鐨勬柊鐗規ч兘浼氬湪榪欓噷榪涜璁ㄨ錛屽茍瀵瑰叾鏈緇堢殑瀹炵幇浠g爜榪涜瀹℃煡銆備換浣曞皢瑕佽繘鍏penJDK鐗堟湰搴撶殑婧愪唬鐮侊紝鏃犺鏄駭鍝佷唬鐮?鍗籌紝瑕侀殢JDK鍙戝竷鐨勭▼搴?錛岃繕鏄祴璇曚唬鐮侊紝閮介渶瑕佸湪紺懼尯涓繘琛屽叕寮鐨勪唬鐮佸鏌ャ?br />    閫夋嫨涓涓嚜宸辨劅鍏磋叮鐨勯鍩熸垨欏圭洰錛屽姞鍏ュ畠鐨勯偖浠跺垪琛紝闀挎湡璺熻釜瀹冪殑鍙戝睍錛岀湅鐫涓撳浠殑璁ㄨ銆佷簤璁烘帹鍔↗DK鐨勬紨榪涳紝瀛︿範寮鍙戣呬滑鐨凙PI璁捐涓庝唬鐮佸疄鐜幫紝...錛岃繖浜涘鑷繁鐨勬垚闀塊兘鏄瀬鏈夊府鍔╃殑銆備篃璁革紝榪樿兘鐪嬪埌涓浜涙湁瓚g殑鍏崷;-)

2. 鍑嗗宸ヤ綔
鍦ㄥ嚑縐嶄富嫻佹搷浣滅郴緇燂紝Linux(濡俇buntu鍜孎edora)錛學indows(7鍜?)錛孧acOS(Lion鍜孧outain Lion)錛屼腑閮藉彲浠ユ瀯寤篛penJDK錛屽叿浣撶殑緇嗚妭鍙互鍙傝瀹樻柟鐨勪竴綃囨枃妗?/a>銆?br />    鏈枃閫夋嫨浣跨敤Ubuntu 14.04銆傚潶鐧藉湴璇達紝閫夋嫨浣跨敤Ubuntu錛屽疄鏄洜涓哄湪Linux鐜涓瀯寤篛penJDK闈炲父綆鍗曘傝嫢鍦╓indows涓繘琛屾瀯寤猴紝鍒欓渶瑕佸畨瑁匳isual Studio C++緙栬瘧鍣ㄣ侻acOS錛熷棷錛屾垜娌℃湁MBP銆傚彲鑳芥洿澶氫漢騫蟲椂鏄嬌鐢╓indows錛屼絾瀹夎涓涓狶inux涔熶笉楹葷儲銆傚厛瀹夎鍏嶈垂鐨刅M宸ュ叿VirtaulBox錛屽啀鍘諱笅杞経buntu鐨?a >ISO鏂囦歡錛岀劧鍚庝嬌鐢╒irtualBox鍘誨畨瑁匲buntu銆俈irtualBox綆鍗曟槗鐢紝緗戜笂鐨勭浉鍏寵祫鏂欎篃闈炲父鐨勫銆?br />    OpenJDK鐨勬簮鏂囦歡鐗堟湰搴撳熀浜?a >Mercurial(hg)錛屽畠鏄竴涓笌Git鐩鎬技鐨勫垎甯冨紡鐗堟湰鎺у埗宸ュ叿銆傚湪Ubuntu涓畨瑁匨ercurial鍙渶瑕佹墽琛屽懡浠?br />
$ sudo apt-get install mercurial
    OpenJDK涓悇欏圭洰鐨勬簮浠g爜鐗堟湰搴撶殑璺緞鍧囧湪http://hg.openjdk.java.net/涔嬩笅錛屽湪榪欓噷鍙互鎵懼埌6錛?錛?錛?鍜孞igsaw鐨勬簮浠g爜銆傚叾涓璊DK 8鐨勬渶鏂板紑鍙戠増鏈簱璺緞涓篽ttp://hg.openjdk.java.net/jdk8u/jdk8u-dev/銆?br />    鍙﹀錛屾瀯寤篛penJDK鏃墮渶瑕佷竴涓惎鍔↗DK錛屾湰鏂囬夋嫨鏋勫緩OpenJDK 8錛岄偅涔堝惎鍔↗DK鐨勭増鏈簲涓嶄綆浜?銆?br />
3. 涓嬭澆婧愪唬鐮?/span>
鍏嬮殕鐗堟湰搴擄紝
$ hg clone http://hg.openjdk.java.net/jdk8u/jdk8u-dev/ jdk8-src
requesting all changes
adding changesets
adding manifests
adding file changes
added 
1570 changesets with 1958 changes to 141 files
updating to branch default
85 files updated, 0 files merged, 0 files removed, 0 files unresolved
榪涘叆婧愪唬鐮佺洰褰?br />
$ cd jdk8-src/
OpenJDK鐨勬簮浠g爜鐗堟湰搴撳疄闄呬笂鍖呭惈澶氫釜鐙珛鐨勫瓙鐗堟湰搴擄紝闇瑕佹墽琛屽涓嬭剼鏈幓鍒嗗埆涓嬭澆鍚勪釜瀛愮増鏈簱鐨勬簮浠g爜錛?br />
$ sh get_source.sh
# Repositories:  corba jaxp jaxws langtools jdk hotspot nashorn
                corba:   hg clone http://hg.openjdk.java.net/jdk8u/jdk8u-dev/corba corba
                 jaxp
:   hg clone http://hg.openjdk.java.net/jdk8u/jdk8u-dev/jaxp jaxp
                corba
:   requesting all changes
                 jaxp
:   requesting all changes

4. 鏋勫緩
璋冪敤configure榪涜棰勬瀯寤猴紝鍏朵腑鐨勫弬鏁?-with-boot-jdk鐢ㄤ簬鎸囧畾鍚姩JDK鐨勮礬寰勩傚鏋滃惎鍔↗DK鐨刯ava鍛戒護宸插瓨鍦ㄤ簬PATH鐜鍙橀噺涓紝璇ュ弬鏁板彲浠ュ拷鐣ャ?br />
$ sh configure --with-boot-jdk=/path/to/boot/jdk
璇ヨ繃紼嬩細媯嫻嬫瀯寤虹幆澧冩槸鍚︾鍚堣姹傦紝濡傛湁闂錛屽畠浼氱粰鍑烘彁紺恒傛瘮濡傦紝
configure: error: Could not find X11 libraries. You might be able to fix this by running 'sudo apt-get install libX11-dev libxext-dev libxrender-dev libxtst-dev libxt-dev'.
姝ゆ椂鏍規嵁鎻愮ず瀹夎鎵闇瑕佺殑搴撳嵆鍙傚啀閲嶆柊鎵ц涓婅堪configure鍛戒護錛屽彲鑳借繕浼氭彁紺虹己灝戝叾瀹冪殑搴擄紝閭d箞鍐嶆鏍規嵁鎻愮ず榪涜瀹夎銆傚姝ゅ弽澶嶏紝鍙埌棰勬瀯寤烘垚鍔熷畬鎴愩?br />鏈鍚庡氨鏄繘琛屾瀯寤猴紝鐩存帴鎵ц濡備笅鍛戒護錛?br />
$ make all
鍦ㄦ榪囩▼涓彲浠ヤ細閬囧埌涓浜涜鍛婏紝涓嶅繀鐞嗕細錛岃愬績絳夊緟...瀹屾垚鍚庯紝浼氬嚭鐜板涓嬬殑姹囨諱俊鎭紝
----- Build times -------
Start 2015-10-30 22:11:10
End   2015-10-30 22:52:54
00:01:01 corba
00:01:08 demos
00:06:49 docs
00:19:37 hotspot
00:01:47 images
00:00:35 jaxp
00:00:49 jaxws
00:08:23 jdk
00:01:09 langtools
00:00:25 nashorn
00:41:44 TOTAL
-------------------------
Finished building OpenJDK for target 'all'
鍦ㄥ綋鍓嶈礬寰勪笅浼氱敓鎴愪竴涓猙uild鐩綍錛屾瀯寤哄ソ鐨凧DK灝卞湪閭i噷闈€傛柊JDK鐨勫叿浣撹礬寰勭被浼間簬build/linux-x86_64-normal-server-release/images/jdk銆傚彲浠ユ墽琛屽涓嬪懡浠ゅ幓嫻嬭瘯榪欎釜JDK錛?br />
$ build/linux-x86_64-normal-server-release/images/jdk/bin/java -version
openjdk version "1.8.0-internal"
OpenJDK Runtime Environment (build 1.8.0-internal-ubuntu_2015_10_30_22_07-b00)
OpenJDK 64-Bit Server VM (build 25.66-b00, mixed mode)


Sha Jiang 2015-10-30 23:17 鍙戣〃璇勮
]]>
主站蜘蛛池模板: 亚洲精品国产免费| 亚洲神级电影国语版| 天天影院成人免费观看| 高潮内射免费看片| 亚洲成人免费在线观看| 中文字幕亚洲一区| 亚洲欧好州第一的日产suv| 精品亚洲成a人片在线观看少妇| 亚洲?V无码乱码国产精品| 无码中文在线二区免费| 最近中文字幕mv免费高清视频8| 一级免费黄色毛片| 最新亚洲人成无码网站| 国产.亚洲.欧洲在线| 亚洲精品中文字幕乱码影院| 国产亚洲真人做受在线观看| 亚洲国产综合精品中文字幕 | 亚洲中文字幕无码永久在线| 国产免费观看网站| 国内大片在线免费看| 亚洲黄色在线电影| 国产又黄又爽又刺激的免费网址| 五月婷婷综合免费| 国产妇乱子伦视频免费| 蜜桃视频在线观看免费视频网站WWW| 国产一级婬片A视频免费观看| 一级毛片视频免费| j8又粗又长又硬又爽免费视频| 国产精品亚洲精品日韩动图| 亚洲av日韩综合一区二区三区 | 亚洲三级高清免费| 亚洲一区二区三区免费视频| 99国产精品免费视频观看| 久久午夜伦鲁片免费无码| 久久久久国色av免费看| 久久久久久AV无码免费网站| 久久99青青精品免费观看| 一级毛片aaaaaa免费看| 亚洲成人免费电影| 可以免费看黄视频的网站| 无码一区二区三区免费视频|