一種Java應用程序的更新方法及裝置的制作方法

            文檔序號:6331930閱讀:225來源:國知局
            專利名稱:一種Java應用程序的更新方法及裝置的制作方法
            技術領域
            本申請涉及計算機領域,特別涉及一種應用程序的更新方法及裝置。
            背景技術
            在Java軟件開發過程中,開發人員每次修改代碼后需要重新編譯,并封裝為應用程序,然后重新啟動應用程序,才能看到修改后的最終執行效果;某些應用程序重新編譯后,重新啟動需要較長時間,例如,無法分割成模塊開發的應用程序(如,WEB應用的TOB層開發),對于此種應用程序,每次即使修改很少量的代碼,都需要重新編譯封裝整個應用程序,并且關閉再重新啟動WEB應用服務器(如,Jboss)。在企業級的開發中,一般情況下,修改普通的應用程序,從修改代碼到關閉并重新啟動WEB服務器,這一過程需要5分鐘左右的時間,對于較大的應用程序,這一過程可能需要10多分鐘的時間;而在程序編寫過程中,開發人員需要定期查看當前代碼的運行結果并作相應修改,以保證代碼按照了開發人員的意愿呈現相應效果,因此需要不斷地關閉并重新啟動WEB服務器,這樣,便令無謂花在代碼編譯、重啟應用程序上的時間大大提升,尤其是當修復代碼錯誤時,這種消耗更為明顯,從而嚴重降低了代碼研發的效率。另外,對于大型服務性應用程序來說,在升級過程中,往往需要重新啟動應用程序,重新編譯部署,并重新發布應用程序,在重啟服務過程中,往往需要中斷對外的服務,從而影響系統的服務質量。針對上述問題,現有技術下提供了兩種解決方案第一種解決方案為直接使用WEB服務器(如,tomcat,Jboss)的熱部署功能。即 WEB服務器監控文件改變,如果某個文件被修改,WEB服務器便重新加載該文件所屬模塊; 從而實現熱部署。但是采用此種解決方案,存在以下缺點A.WEB服務器通過監控文件改變,重新加載整個模塊,僅能針對sevlet ( 一種服務器端的Java應用程序)進行熱加載;對于使用了框架的應用程序,無法加載框架內的內容, 如果通過servlet熱加載來實現框架代碼的更新,需要再次初始化框架,速度非常緩慢.B、每次修改文件后,WEB服務器會自動進行熱部署,這會使內存需求增加,同時,由于要重新初始化相應模塊,所以會占用大量CPU資源;多次熱部署后,系統資源會被大量占用,從而不得不停止熱部署,重新編譯應用程序和重新啟動服務。第二種解決方案為采用hotswap的方法,通過Java虛擬機(Jvm)提供的接口 (Jpda或者Jvmti),來改變Java虛擬機的狀態,將修改過的類文件(.class文件)替換Jvm 中原有的.class文件。采用上述解決方案可以實現對運行狀態中能夠到達的區域進行修改,采用的調式工具可以是debug,具有一定的熱部署能力。然而,采用此種解決方案,存在以下缺點A、僅能針對運行狀態可以到達的區域進行修改,而不能增加新的區域。如,僅支持對方法body的修改,不支持增加方法,修改方法名,方法參數等操作。對于熱部署來說,無法做到全部代碼的熱部署,特別是經常性的操作,比如增加方法,增加內部類,修改方法名等等;會嚴重影響熱部署方法的應用范圍,具有一定的局限性。B、Hotswap提供的熱部署比較復雜,使用時會產生不穩定的現象,有時會發生崩潰。C、通過此種解決方案實現熱部署時采用的工具的開發量極大,會增加開發復雜度。綜上所述,現有的解決方案均無法實現理想的Java應用程序的熱部署,需要提供一種新的方案以克服現有方案的缺陷。

            發明內容
            本申請提供一種Java應用程序的修改方法及裝置,用以在對Java應用程序進行修改的過程中,降低操作流程的復雜度,提高其執行效率。本申請提供的具體技術方案如下一種Java應用程序的更新方法,包括確定存在至少一個編譯生成的目標類文件;在指定存儲位置獲取所述至少一個目標類文件;針對獲取的至少一個目標類文件建立相應的類加載程序,采用所述類加載程序將所述至少一個目標類文件加載至運行狀態的Java應用程序中;其中,所述類加載程序繼承當前的環境加載程序。一種用于Java應用程序更新的裝置,包括掃描單元,用于確定存在至少一個編譯生成的目標類文件;獲取單元,用于在指定存儲位置獲取所述至少一個目標類文件;處理單元,用于針對獲取的至少一個目標類文件建立相應的類加載程序,采用所述類加載程序將所述至少一個目標類文件加載至運行狀態的Java應用程序中;其中,所述類加載程序繼承當前的環境加載程序。本申請實施例中,開發了新的熱部署工具,通過新建的繼承當前環境classloader 的eas於tartClassLoader,在指定存儲位置加載目標類文件,并將其加載至運行狀態的 Java應用程序中,從而完成Java應用程序的更新,這樣,只需加載重新編譯的目標類文件, 便實現了 Java應用程序的熱部署,從而提高了 Java應用程序的更新效率。


            圖1為本申請實施例中TOB服務器工作原理示意圖;圖2為本申請實施例中WEB服務器功能結構圖;圖3為本申請實施例中WEB服務器對運行狀態的Java應用程序進行更新流程圖。
            具體實施例方式參閱圖1所示,在對Java應用程序進行修改的過程中,為了降低操作流程的復雜度,提高其執行效率,本申請實施例中,研發了一種新的熱部署工具,較佳的,該熱部分工具在運行時所采用的WEB服務器為Jboss,采用的代碼開發環境(即代碼編輯器)為 eclipse,而本申請實施例不限于Jboss和eclipse兩種實現方式,此處僅為舉例,這里只是示例性的說明如圖1所示,現有技術下,當開發人員編寫完源代碼,會使用antx/maven等編譯工具對源代碼進行編譯封裝,并最終生成軟件產品(如,一個可運行的Java應用程序);接著,開發人員將該軟件產品部署到Jboss上,再啟動JvmCJavaVirtual Machine, Java虛擬機),由Jvm啟動Jboss,再由Jboss啟動軟件產品(包括啟動應用框架,由應用框架啟動軟件產品的應用代碼);此時,開發人員向Jboss發送一個執行命令,可以看到相應的執行效果。如果根據執行效果發現需要對源代碼進行修改,那么開發人員需要關閉Jboss,并重復上述源代碼修改、編譯封裝過程,將根據修改后的源代碼生成的軟件產品再次部署到Jboss 上,再重新啟動Jboss以運行修改后的軟件產品。這一過程需要較長時間,會降低Java應用程序的修改效率,從而影響整個服務系統的性能。與普通程序不同,Java程序(.class文件)并不是本地的可執行程序。當需要運行.class文件時,首先應運行JvmCJava虛擬機),然后再把.class文件加載到Jvm中運行,負責加載.class文件的工具就叫做classloader,而Jvm在加載過程中使用的接口稱為 Jvmti接口。本申請實施例中,重新設計的熱部署工具中,重新定義了 Jvmti接口的功能,替換了 Jvm中原有的框架代碼,這樣,啟動Jvm時,Jvm根據改變后的框架代碼會自動重新創建一個classloader (稱為fes於tartClassLoader),直接在指定存儲位置獲取最新編譯生成的.class文件,其中,Jvmti接口 如圖1所示,在原有框架(也可以稱為應用框架)運行時,Jboss—般通過運行環境中的classLoader去獲取本地軟件產品中包含的應用代碼,而本申請實施例中,通過重新定義Jvmti接口,改變了原有框架的行為,使Jboss每次調用目標.class文件時,到指定存儲位置獲取最新編譯生成的目標.class文件,所謂指定存儲位置,可以是開發人員指定的代碼編輯器中的編譯目標文件夾。實際應用中,也可以不從代碼編輯器中獲取目標.class文件,例如,通過命令行調用Jvm指令直接編譯生成一個目標.class文件,或者,從其它指定位置拷貝一個編譯生成的新的目標.class等等,其目的在于獲取一個目標.class文件并熱部署到運行狀態的 Java應用程序中,并不限制目標.class文件的來源。以下實施例中,以在代碼編輯器中的指定存儲裝置獲取目標.class文件為例進行說明。EasyStartClassLoader : gfe · classclassloader,
            施例中,在創建fesyMartClassLoader時,顛倒了 classLoader的常規的雙親委派的機制 (classLoader 力口i,#由〒 classLoader ^ ) ,^Μτ^ EasyStartClassLoader 加載,再由EasyStartClassLoader的父classLoader加載的方式,同時將該父classLoader 設成環境classLoader,并通過限定EasyMartClassLoader只能加載目標.class文件,來保證與目標.class文件相關的其他.class文件或者.class文件庫由環境classLoader加載。其中,所謂環境classLoader即是當前環境的創建者,所謂環境,即是指當前的運行狀態,即一組代碼運行的狀態,加載這一組代碼的classLoader即是當前環境classLoader。在加載過程中,一般通過Java中的接口或者Java反射機制的方式,來使外部環境可以正常使用easyMartClassLoader加載的目標.class文件,從而實現在運行態,自動調用最新加載的目標.class文件來運行,并得到即時結果。以代碼編輯器是eclipse為例,開發人員修改部分代碼后,eclipse會把修改部分的代碼文件編譯成新的.class文件,即目標.class文件;由于是編譯單個文件,因此速度極快,可以忽略編譯時間;接著,通過使用被JVM的jvmti接口處理過的框架(即重新定義的框架),定期進行文件掃描,確定eclipse中指定的文件夾內存在重新編譯生成的目標.class文件時,便在該指定的文件夾內獲取新生成的目標.class文件,這個過程速度也很快,可以忽略時間。下面結合附圖對本申請優選的實施方式進行詳細說明。參閱圖2所示,本申請實施例中,用于對Java應用程序進行更新的裝置(如,WEB 服務器)包括掃描單元10、獲取單元11和處理單元12,其中掃描單元10,用于在指定存儲位置進行掃描,確定生成了重新編譯的目標類文件, 即目標.class文件;本發明實施例中,由于在代碼編輯器中獲取目標.class文件,因此,需要采用掃描單元10定期進行文件掃描,以確定存在目標.class文件,實際應用中,若是根據Jvm命令直接編譯生成目標.class文件,或者根據指示從其他位置拷貝目標.class文件,則也可以不采用掃描單元10,在此不再贅述;獲取單元11,用于獲取至少一個目標類文件,即目標.class文件;本實施例中,獲取單元11在指定存儲位置獲取目標.class文件,其原因是Jvm采用的框架使用的是重新設計的Jvmti接口,框架行為發生了改變。處理單元12,用于針對獲取的至少一個目標類文件建立相應的類加載程序,即eas於tartClassLoader,并采用該類加載程序將獲取的至少一個目標類文件加載至運行狀態的Java應用程序中;其中,類加載程序繼承當前的環境加載程序,即 easyStartClassLoader 7 C^ IU"W^F^ classloder。本實例中,掃描單元10獲取單元11和處理單元12,是通過Jvm的重新設計的 Jvmti接口,在不改變原框架代碼的情況下,嵌入原有框架邏輯,并且生效運行的。上述TOB服務器中需支持Jvm,較佳的,上述TOB服務器為Jboss,或者為tomcat。基于上述系統架構,參閱圖3所示,本申請實施例中,以在eclipse中編譯目標.class文件為例,介紹TOB服務器對運行狀態的Java應用程序進行更新的詳細流程如下步驟300 確定代碼編輯器(如,eclipse)中存在至少一個編譯生成的目標類文件,即目標.class文件。步驟310 在代碼編輯器內的指定存儲位置獲取上述至少一個目標類文件。本申請實施例中,在執行步驟310時,WEB服務器支持的Jvm通過新定義的Jvmti 接口改變了 Jvm中運行的原有框架的行為,令改變后的框架可以在eclipse的指定存儲位置(如,eclipse默認將目標.class文件編譯到文件夾target/classes/目錄下),獲取開發人員新編譯的目標.class文件,目標.class文件的數目可以是一個,也可以是多個。現有技術下,Jvm在配置使用jvmti接口后,Jvm在加載每個· class文件時,均會通過Jvmti接口調用,并且可以通過Jvmti接口對.class文件的字節碼進行修改,現有的 Jvmti接口的實現代碼如下byte []transform(ClassLoader loader,
            Stringc IassName,Class< ? >cIassBeingRedefined,ProtectionDomain protectionDomain,byte[]classf ileBuffer)throws IllegalClassFormatException ;現有技術下通過Jvmti接口調用.class文件是從框架的代碼中獲取,在上述代碼中,loader為裝載被調用的.class文件的classloader,className為被調用的.class文件的名稱,classBeingRedf ined為被調用的.class文件的類型,protectionDomain為被調用的.class文件的作用域,classfileBuffer為Jvm讀取到的字節碼。通常情況下,可以根據classfileBuffer讀取到的字節碼來進行分析,然后改變字節碼的內容,并返回給Jvm, Jvm將運行改變后的字節碼,從而達到改變框架行為的目的,而實際上原先使用的代碼并沒有改變,于是在不改變原先使用的代碼,即在無侵入的情況下,改變了框架的原有運行方式。但是分析并改變字節碼,需要開發人員對Java編譯類文件的機制非常了解,對.class 文件的機制非常了解,因此,按照上述方式即使達到了改變Jvm調用.class文件的原有方式的目的,也需要相當的工作量。本申請實施例中,為了減少實現上述目的的工作量,將需要改變的.class文件導入代碼編輯器(如,eclipse)中,按照實際需求自定義改變類的運行方式,保存后,代碼編輯器自動編譯生成目標.class文件,相應地,Jvm通過jvmti接口,只需檢驗代碼編輯器中的className,確定是需要替換的.class文件時,就直接獲取編譯完成的目標.class文件的字節碼,而不用去分析并修改classfileBuffer中的字節碼,這樣,便大大降低了采用原有Jvmti接口的使用方式所需的工作量。本申請實施例中,實現Jvmti接口調用的執行代碼如下String targetName = "targetClass,,;if(className. equals(targetName)){return Transformer. getBytesFromFile(targetName);}return null ;其中,getBytesFromFile (targetName所定義的方法只是返回目標.class的文件流而已,步驟320 針對獲取的至少一個.class文件建立相應的easyMartClassLoader, 采用該easyMartClassLoader將獲取的至少一個.class文件加載至運行狀態的Java應用程序中,其中,上述easyStartClassLoader繼承當前環境classLoader。本申請實施例中,上述easyMartClassLoader的功能是加載代碼編輯器中編碼生成的指定的目標.class文件,較佳的,針對重新編譯生成的目標.class 文件可建立至少一個easyStartClassLoader,如,針對每一個目標· class文件分別建立一個easyMartClassLoader,也可以針對多個目標.class文件建立一個 easyMartClassLoader,并且要將加載的目標.class文件返回給Jvm中的運行狀態的Java 應用程序,令Java應用程序可以采用新加載的目標.class文件進行運作。本申請實施例中,要實現上述功能,存在以下難點
            首先,一個classLoader加載了某個.class文件后,就不能再重新加載這個.class文件,必須重新建立一個classLoader才能重新加載這個.class文件;其次,不同的classLoader加載的.class文件是不能相互使用的,即使新建了 easyMartClassLoader,加載了目標.class文件,該.class文件也無法讓之前已建立的 classLoader iJM ;再次,easyStartClassLoader加載的.class文件大量依賴當前的環境類和類庫, 這些需要由環境classLoader加載,而不能由easyStartClassLoader加載。針對上述問題,本申請實施例中采用了以下方式加以解決每次都創建新的 easyStartClassLoader,新創建的 eas於tartClassLoader 繼 ^ IU" ^F M classLoader (艮口 {乍為 easyStartLoader 的義 classLoader) ; # i 真頁 flj J
            ClassLoader的雙親委派的機制,即先由eas於tartClassLoader加載目標· class文件, 再交由其繼承的環境classLoader處理;同時通過限定加載項的辦法,保證安全,即限定 easyStartClassLoader只能加載指定存儲位置的目標.class文件,其它相關的.class文件全部交由其繼承的環境classLoader加載。其中,所謂環境classLoader即是當前環境的創建者,所謂環境,即是指當前的運行狀態,即一組代碼運行的狀態,加載這一組代碼的 classLoader 艮口是當前環境 classLoader。具體為現有技術下,classLoader的實現代碼舉例如下protected synchronized Class< ? >loadClass (String name, boolean resolve)throws ClassNotFoundException{//First, check if the class has already been loadedClass c = findLoadedClass(name);if (c == null) {try {if (parent ! = null) {c = parent. IoadClass (name, false);}else{c = findBootstrapClassO(name);}}catch(ClassNotFoundException e){//If still not found, then invoke findClass in order//to find the class.c = f indClass (name);}}if (resolve) {resolveClass (c);
            }return c ;}從上述代碼中可以看出,classloader存在兩個特性第一個特性為一旦加載了一個.class文件(稱為類A),就不再去讀取其字節碼。因此,本實施例中,針對類A進行重新編譯生成類A’后,必須新建一個 easyStartClassLoader 去讀取并力口載類 A,。第二個特性為優先讓父classLoader加載.class文件,如果父classLoader可以加載這個.class文件,就不再由子classLoader加載這個.class文件。因此,本實施例中,需要顛倒雙親委派機制,針對重新編碼生成的類A’,先由新建的 easyStartClassLoader 力口classLoader (艮口 easyStartClassLoader
            環境classLoader)加載其他相關的.class文件。與現有技術不同,本申請實施例中,easyStartLoader實現代碼舉例如下public synchronized Class< ? >loadClass(String name)throwsClassNotFoundException{Class< ? >c = findLoadedClass(name);if (c ! = null) {return c ;}try {if (name. indexOf (targetClass) = = -1) {throw new Exception(" easyStartClassLoader escaped:" +name);}c = this, f indClass (name);System, out. println( " easyStartClassLoader loaded:" +name);} catch (Exception e) {c = super. IoadClass (name);}return c ;} 從上述代碼可以看出,easyStartClassLoader只需要繼承當前環境classLoader,
            成為當前環境classLoader的子classLoader,這樣,目標.class文件(即重新編譯后的至少一個.class文件)所依賴的其他相關的.class文件則均可由環境classLoader加載, 并且環境classLoader無法加載目標.class文件,即在限定加載項(即目標.class文件) 的前提下,顛倒雙親委派的機制,讓子classLoader (即easyMartLoader)先加載,再由環境classLoader加載,但easyMartLoader只加載目標.class文件,其他相關的.class文件還是由環境classLoader加載。基于上述實施例,在將目標.class文件加載至運行狀態的Java應用程序的過程中,一般通過java中的接口或者Java反射機制的方式,來令外部環境可以調用新加載的目標.class文件。所謂Java中的接口是一系列方法的聲明,是一些方法特征的集合,一個Java中的接口只有方法的特征沒有方法的實現,因此這些方法可以在不同的地方被不同的類實現, 而這些實現可以具有不同的行為(即功能)。Java中的接口事實上由環境classLoader 加載,但easyMartClassLoader因為繼承環境classLoader所以也可以訪問到,由于 easyStartClassLoader加載的一個或一組目標.class文件也是繼承Java中的接口的,所以在外部環境中,被加載的一個或一組目標.class文件在被實例化后,通過強轉成java中的接口來被使用。本實施例中,在外部環境中使用被easyMartClassLoader加載的一個或一組.class文件的實現代碼舉例如下ClassLoader classloader = newEasyStartClassLoader (new URL [] {url}, moduleClassName);moduleClass =classloader. IoadClass(moduleClassName);module = (Module) moduleClass. newlnstance ();通過上述代碼可以看出,本實施例中,被easyMartLoader加載的一個或一組目標.class文件(以下稱為被加載的模塊)實現了使用Java中的接口,同時,還保證 T Java Φ StJii π # ^ easyStartClassLoader classLoader ^^F^ classLoader 加載,而非easyMartClassLoader加載,這是為了讓環境classLoader可以使用 easyStartClassLoader加載的模塊,因為一般情況下,不同classLaoder加載的模塊是不能通用的。這樣,easyStartClassLoader繼承上述環境classLoader,便可以令自身加載的模塊訪問到環境classLoader加載的Java中的接口,從而令外部環境可以通過上述Java 中的接口來調用eas於tartClassLoader加載的模塊。其中,所謂外部環境,即是指相對于 easyStartClassLoader加載的環境,調用easyMartClassLoader加載的環境的環境稱之為外部環境。另一方面,所謂的Java反射機制(稱為Reflection),即是在Java應用程序運行時,允許加載、探知、使用編譯期間完全未知的.class文件,換句話說,Java應用程序可以加載一個運行時才得知名稱的.class文件,獲悉其完整構造,并生成其對象實體。例如, Java反射機制為Class. getMethod (). invoke (),采用Java反射機制,對于任意一個.class 文件,都能夠知道其所有屬性和方法;對于任意一個對象,都能夠調用它的任意一個方法; 因此,采用Java反射機制,可以在Java應用程序加載目標.class文件后,令外部環境也能夠調用該目標.class文件。最后,Jvm按照重新加載的.class文件執行Java應用程序,便可以使用新加載的.class文件具有的功能。本申請實施例中,開發了新的熱部署工具,通過新建的繼承當前環境classloader 的eas於tartClassLoader,在指定存儲位置加載目標類文件,并將其加載至運行狀態的Java應用程序中,從而完成Java應用程序的更新,這樣,只需加載重新編譯的目標類文件,便實現了 Java應用程序的熱部署,提高了 Java應用程序的更新效率;而且, easyStartClassLoader的原理結構簡單,具有很高的穩定性,也不會增加內存消耗和額外的系統消耗,可以無限次快速無代價實現熱部署,具有很高的實用性;進一步地,新的熱部署工具的核心代碼可以根據Java應用框架和應用狀態,以極少的開發量作出擴展,可以做到全代碼全操作的熱部署,具有廣泛的應用范圍。 顯然,本領域的技術人員可以對本申請進行各種改動和變型而不脫離本發明的精神和范圍。這樣,倘若本申請的這些修改和變型屬于本申請權利要求及其等同技術的范圍之內,則本申請也意圖包含這些改動和變型在內。
            權利要求
            1.一種Java應用程序的更新方法,其特征在于,包括獲取至少一個編譯生成的目標類文件;針對獲取的至少一個目標類文件建立相應的類加載程序,采用所述類加載程序將所述至少一個目標類文件加載至運行狀態的Java應用程序中;其中,所述類加載程序繼承當前的環境加載程序。
            2.如權利要求1所述的方法,其特征在于,針對獲取的至少一個目標類文件建立相應的類加載程序,包括若獲取的目標類文件的數目為一個,則對應該目標類文件建立相應的類加載程序;若獲取的目標類文件的數目為一個以上,則對應各目標類文件建立至少一個類加載程序。
            3.如權利要求1或2所述的方法,其特征在于,采用所述類加載程序將所述至少一個目標類文件加載至運行狀態的Java應用程序中,包括先采用所述類加載程序對所述至少一個目標類文件進行加載;再采用所述環境加載程序對與所述目標類文件相關的其他類文件進行加載。
            4.如權利要求3所述的方法,其特征在于,采用所述類加載程序將所述至少一個目標類文件加載至運行狀態的Java應用程序中,進一步,包括采用所述類加載程序繼承所述環境加載程序加載的全部Java中的接口,令外部環境能夠通過所述Java中的接口調用所述至少一個目標類文件。
            5.如權利要求3所述的方法,其特征在于,采用所述類加載程序將所述至少一個目標類文件加載至運行狀態的Java應用程序中,進一步,包括采用Java反射機制,令外部環境能夠調用所述至少一個目標類文件。
            6.一種用于Java應用程序更新的裝置,其特征在于,包括獲取單元,用于獲取至少一個編譯生成的目標類文件;處理單元,用于針對獲取的至少一個目標類文件建立相應的類加載程序,采用所述類加載程序將所述至少一個目標類文件加載至運行狀態的Java應用程序中;其中,所述類加載程序繼承當前的環境加載程序。
            7.如權利要求6所述的裝置,其特征在于,所述處理單元針對獲取的至少一個目標類文件建立相應的類加載程序,包括若獲取的目標類文件的數目為一個,則所述處理單元對應該目標類文件建立相應的類加載程序;若獲取的目標類文件的數目為一個以上,則所述處理單元對應各目標類文件建立至少一個類加載程序。
            8.如權利要求6或7所述的裝置,其特征在于,所述處理單元采用所述類加載程序將所述至少一個目標類文件加載至運行狀態的Java應用程序中,包括先采用所述類加載程序對所述至少一個目標類文件進行加載;再采用所述環境加載程序對與所述目標類文件相關的其他類文件進行加載。
            9.如權利要求7所述的裝置,其特征在于,所述處理單元采用所述類加載程序將所述至少一個目標類文件加載至運行狀態的Java應用程序中,進一步,包括采用所述類加載程序繼承所述環境加載程序加載的全部Java中的接口,令外部環境能夠通過所述Java中的接口調用所述至少一個目標類文件。
            10.如權利要求6所述的裝置,其特征在于,所述處理單元采用所述類加載程序將所述至少一個目標類文件加載至Java應用程序中,進一步,包括采用Java反射機制,令外部環境能夠調用所述至少一個目標類文件。
            全文摘要
            本申請公開了一種Java應用程序的更新方法及裝置,用于提高Java應用程序的更新效率。該方法為獲取至少一個目標類文件,并針對獲取的至少一個目標類文件建立相應的類加載程序,在Java應用程序運行過程中,采用所述類加載程序將所述至少一個目標類文件加載至運行狀態的Java應用程序中;其中,所述類加載程序繼承當前的環境加載程序。這樣,只需加載重新編譯的目標類文件,便實現了Java應用程序的熱部署,從而提高了Java應用程序的更新效率。本發明同時提供了相應的裝置。
            文檔編號G06F9/445GK102402427SQ20101027995
            公開日2012年4月4日 申請日期2010年9月9日 優先權日2010年9月9日
            發明者楊航 申請人:阿里巴巴集團控股有限公司
            網友詢問留言 已有0條留言
            • 還沒有人留言評論。精彩留言會獲得點贊!
            1
            婷婷六月激情在线综合激情,亚洲国产大片,久久中文字幕综合婷婷,精品久久久久久中文字幕,亚洲一区二区三区高清不卡,99国产精品热久久久久久夜夜嗨 ,欧美日韩亚洲综合在线一区二区,99国产精品电影,伊人精品线视天天综合,精品伊人久久久大香线蕉欧美
            亚洲精品1区 国产成人一级 91精品国产欧美一区二区 亚洲精品乱码久久久久久下载 国产精品久久久久久久伊一 九色国产 国产精品九九视频 伊人久久成人爱综合网 欧美日韩亚洲区久久综合 欧美日本一道免费一区三区 夜夜爽一区二区三区精品 欧美日韩高清一区二区三区 国产成人av在线 国产精品对白交换绿帽视频 国产视频亚洲 国产在线欧美精品 国产精品综合网 国产日韩精品欧美一区色 国产日韩精品欧美一区喷 欧美日韩在线观看区一二 国产区精品 欧美视频日韩视频 中文字幕天天躁日日躁狠狠躁97 视频一二三区 欧美高清在线精品一区二区不卡 国产精品揄拍一区二区久久 99久久综合狠狠综合久久aⅴ 亚洲乱码视频在线观看 日韩在线第二页 亚洲精品无码专区在线播放 成人亚洲网站www在线观看 欧美三级一区二区 99久久精品免费看国产高清 91麻豆国产在线观看 最新日韩欧美不卡一二三区 成人在线观看不卡 日韩国产在线 在线亚洲精品 亚洲午夜久久久久中文字幕 国产精品成人久久久久久久 精品国产一区二区在线观看 欧美精品国产一区二区三区 中文在线播放 亚洲第一页在线视频 国产午夜精品福利久久 九色国产 精品国产九九 国产永久视频 久久精品人人做人人综合试看 国产一区二区三区免费观看 亚洲精品国产电影 9999热视频 国产精品资源在线 麻豆久久婷婷国产综合五月 国产精品免费一级在线观看 亚洲国产一区二区三区青草影视 中文在线播放 国产成人综合在线 国产在线观看色 国产亚洲三级 国产片一区二区三区 久久99精品久久久久久牛牛影视 亚洲欧美日韩国产 四虎永久免费网站 国产一毛片 国产精品视频在 九九热在线精品 99精品福利视频 色婷婷色99国产综合精品 97成人精品视频在线播放 精品久久久久久中文字幕 亚洲欧美一区二区三区孕妇 亚洲欧美成人网 日韩高清在线二区 国产尤物在线观看 在线不卡一区二区 91网站在线看 韩国精品福利一区二区 欧美日韩国产成人精品 99热精品久久 国产精品免费视频一区 高清视频一区 精品九九久久 欧美日韩在线观看免费 91欧美激情一区二区三区成人 99福利视频 亚洲国产精品91 久热国产在线 精品久久久久久中文字幕女 国产精品久久久久久久久99热 成人自拍视频网 国产精品视频久久久久久 久久影院国产 国产玖玖在线观看 99精品在线免费 亚洲欧美一区二区三区导航 久久久久久久综合 国产欧美日韩精品高清二区综合区 国产精品视频自拍 亚洲一级片免费 久久久久久九九 国产欧美自拍视频 视频一区二区在线观看 欧美日韩一区二区三区久久 中文在线亚洲 伊人热人久久中文字幕 日韩欧美亚洲国产一区二区三区 欧美亚洲国产成人高清在线 欧美日韩国产码高清综合人成 国产性大片免费播放网站 亚洲午夜综合网 91精品久久一区二区三区 国产无套在线播放 国产精品视频网站 国产成人亚洲精品老王 91在线网站 国产视频97 欧美黑人欧美精品刺激 国产一区二区三区免费在线视频 久久久国产精品免费看 99re6久精品国产首页 久久精品91 国产成人一级 国产成人精品曰本亚洲 日本福利在线观看 伊人成综合网 久久综合一本 国产综合久久久久久 久久精品成人免费看 久久福利 91精品国产91久久久久久麻豆 亚洲精品成人在线 亚洲伊人久久精品 欧美日本二区 国产永久视频 国产一区二 一区二区福利 国产一毛片 亚洲精品1区 毛片一区二区三区 伊人久久大香线蕉综合影 国产欧美在线观看一区 亚洲国产欧洲综合997久久 国产一区二区免费视频 国产91精品对白露脸全集观看 久久亚洲国产伦理 欧美成人伊人久久综合网 亚洲性久久久影院 久久99国产精一区二区三区! 91精品国产欧美一区二区 欧美日韩亚洲区久久综合 日韩精品一二三区 久久久夜色精品国产噜噜 国产在线精品福利91香蕉 久久久久久久亚洲精品 97se色综合一区二区二区 91国语精品自产拍在线观看性色 91久久国产综合精品女同我 日韩中文字幕a 国产成人亚洲日本精品 久久国产精品-国产精品 久久国产经典视频 久久国产精品伦理 亚洲第一页在线视频 国产精品久久久久三级 日韩毛片网 久久免费高清视频 麻豆国产在线观看一区二区 91麻豆国产福利在线观看 国产成人精品男人的天堂538 一区二区三区中文字幕 免费在线视频一区 欧美日韩国产成人精品 国产综合网站 国产资源免费观看 亚洲精品亚洲人成在线播放 精品久久久久久中文字幕专区 亚洲人成人毛片无遮挡 国产一起色一起爱 国产香蕉精品视频在 九九热免费观看 日韩亚洲欧美一区 九九热精品在线观看 精品久久久久久中文字幕专区 亚洲欧美自拍偷拍 国产精品每日更新 久久久久国产一级毛片高清板 久久天天躁狠狠躁夜夜中文字幕 久久精品片 日韩在线毛片 国产成人精品本亚洲 国产成人精品一区二区三区 九九热在线观看 国产r级在线观看 国产欧美日韩精品高清二区综合区 韩国电影一区二区 国产精品毛片va一区二区三区 五月婷婷伊人网 久久一区二区三区免费 一本色道久久综合狠狠躁篇 亚洲综合色站 国产尤物在线观看 亚洲一区亚洲二区 免费在线视频一区 欧洲精品视频在线观看 日韩中文字幕a 中文字幕日本在线mv视频精品 91精品在线免费视频 精品国产免费人成在线观看 精品a级片 中文字幕日本在线mv视频精品 日韩在线精品视频 婷婷丁香色 91精品国产高清久久久久 国产成人精品日本亚洲直接 五月综合视频 欧美日韩在线亚洲国产人 精液呈暗黄色 亚洲乱码一区 久久精品中文字幕不卡一二区 亚洲天堂精品在线 激情婷婷综合 国产免费久久精品久久久 国产精品亚洲二区在线 久久免费播放视频 五月婷婷丁香综合 在线亚洲欧美日韩 久久免费精品高清麻豆 精品久久久久久中文字幕 亚洲一区网站 国产精品福利社 日韩中文字幕免费 亚洲综合丝袜 91精品在线播放 国产精品18 亚洲日日夜夜 伊人久久大香线蕉综合影 亚洲精品中文字幕乱码影院 亚洲一区二区黄色 亚洲第一页在线视频 一区二区在线观看视频 国产成人福利精品视频 亚洲高清二区 国内成人免费视频 精品亚洲性xxx久久久 国产精品合集一区二区三区 97av免费视频 国产一起色一起爱 国产区久久 国产资源免费观看 99精品视频免费 国产成人一级 国产精品九九免费视频 欧美91精品久久久久网免费 99热国产免费 久久精品色 98精品国产综合久久 久久精品播放 中文字幕视频免费 国产欧美日韩一区二区三区在线 精品久久蜜桃 国产小视频精品 一本色道久久综合狠狠躁篇 91在线免费观看 亚洲精品区 伊人成综合网 伊人热人久久中文字幕 伊人黄色片 99国产精品热久久久久久夜夜嗨 久久免费精品视频 亚洲一区二区三区高清不卡 久久久久国产一级毛片高清板 国产片一区二区三区 久久狠狠干 99久久婷婷国产综合精品电影 国产99区 国产精品成人久久久久 久久狠狠干 青青国产在线观看 亚洲高清国产拍精品影院 国产精品一区二区av 九九热在线免费视频 伊人久久国产 国产精品久久久久久久久久一区 在线观看免费视频一区 国产精品自在在线午夜区app 国产精品综合色区在线观看 国产毛片久久久久久国产毛片 97国产免费全部免费观看 国产精品每日更新 国产尤物视频在线 九九视频这里只有精品99 一本一道久久a久久精品综合 久久综合给会久久狠狠狠 国产成人精品男人的天堂538 欧美一区二区高清 毛片一区二区三区 国产欧美日韩在线观看一区二区三区 在线国产二区 欧美不卡网 91在线精品中文字幕 在线国产福利 国内精品91久久久久 91亚洲福利 日韩欧美国产中文字幕 91久久精品国产性色也91久久 亚洲性久久久影院 欧美精品1区 国产热re99久久6国产精品 九九热免费观看 国产精品欧美日韩 久久久久国产一级毛片高清板 久久国产经典视频 日韩欧美亚洲国产一区二区三区 欧美亚洲综合另类在线观看 国产精品自在在线午夜区app 97中文字幕在线观看 视频一二三区 精品国产一区在线观看 国产欧美日韩在线一区二区不卡 欧美一区二三区 伊人成人在线观看 国内精品91久久久久 97在线亚洲 国产在线不卡一区 久久久全免费全集一级全黄片 国产精品v欧美精品∨日韩 亚洲毛片网站 在线不卡一区二区 99re热在线视频 久久激情网 国产毛片一区二区三区精品 久久亚洲综合色 中文字幕视频免费 国产视频亚洲 婷婷伊人久久 国产一区二区免费播放 久久99国产精品成人欧美 99国产在线视频 国产成人免费视频精品一区二区 国产不卡一区二区三区免费视 国产码欧美日韩高清综合一区 久久精品国产主播一区二区 国产一区电影 久久精品国产夜色 国产精品国产三级国产 日韩一区二区三区在线 久久97久久97精品免视看 久久国产免费一区二区三区 伊人久久大香线蕉综合电影网 99re6久精品国产首页 久久激情网 亚洲成人高清在线 国产精品网址 国产成人精品男人的天堂538 香蕉国产综合久久猫咪 国产专区中文字幕 91麻豆精品国产高清在线 久久国产经典视频 国产精品成人va在线观看 国产精品爱啪在线线免费观看 日本精品久久久久久久久免费 亚洲综合一区二区三区 久久五月网 精品国产网红福利在线观看 久久综合亚洲伊人色 亚洲国产精品久久久久久网站 在线日韩国产 99国产精品热久久久久久夜夜嗨 国产综合精品在线 国产区福利 精品亚洲综合久久中文字幕 国产制服丝袜在线 毛片在线播放网站 在线观看免费视频一区 国产精品久久久精品三级 亚洲国产电影在线观看 最新日韩欧美不卡一二三区 狠狠综合久久综合鬼色 日本精品1在线区 国产日韩一区二区三区在线播放 欧美日韩精品在线播放 亚洲欧美日韩国产一区二区三区精品 久久综合久久网 婷婷六月激情在线综合激情 亚洲乱码一区 国产专区91 97av视频在线观看 精品久久久久久中文字幕 久久五月视频 国产成人福利精品视频 国产精品网址 中文字幕视频在线 精品一区二区三区免费视频 伊人手机在线视频 亚洲精品中文字幕乱码 国产在线视频www色 色噜噜国产精品视频一区二区 精品亚洲成a人在线观看 国产香蕉尹人综合在线 成人免费一区二区三区在线观看 国产不卡一区二区三区免费视 欧美精品久久天天躁 国产专区中文字幕 久久精品国产免费中文 久久精品国产免费一区 久久无码精品一区二区三区 国产欧美另类久久久精品免费 欧美精品久久天天躁 亚洲精品在线视频 国产视频91在线 91精品福利一区二区三区野战 日韩中文字幕免费 国产精品99一区二区三区 欧美成人高清性色生活 国产精品系列在线观看 亚洲国产福利精品一区二区 国产成人在线小视频 国产精品久久久久免费 99re热在线视频 久久久久久久综合 一区二区国产在线播放 成人国产在线视频 亚洲精品乱码久久久久 欧美日韩一区二区综合 精品久久久久免费极品大片 中文字幕视频二区 激情粉嫩精品国产尤物 国产成人精品一区二区视频 久久精品中文字幕首页 亚洲高清在线 国产精品亚洲一区二区三区 伊人久久艹 中文在线亚洲 国产精品一区二区在线播放 国产精品九九免费视频 亚洲二区在线播放 亚洲狠狠婷婷综合久久久久网站 亚洲欧美日韩网站 日韩成人精品 亚洲国产一区二区三区青草影视 91精品国产福利在线观看 国产精品久久久久久久久99热 国产一区二区精品尤物 久碰香蕉精品视频在线观看 亚洲日日夜夜 在线不卡一区二区 国产午夜亚洲精品 九九热在线视频观看这里只有精品 伊人手机在线视频 91免费国产精品 日韩欧美中字 91精品国产91久久久久 国产全黄三级播放 视频一区二区三区免费观看 国产开裆丝袜高跟在线观看 国产成人欧美 激情综合丝袜美女一区二区 国产成人亚洲综合无 欧美精品一区二区三区免费观看 欧美亚洲国产日韩 日韩亚州 国产欧美日韩精品高清二区综合区 亚洲午夜国产片在线观看 精品久久久久久中文字幕 欧美精品1区 久久伊人久久亚洲综合 亚洲欧美日韩精品 国产成人精品久久亚洲高清不卡 久久福利影视 国产精品99精品久久免费 久久久久免费精品视频 国产日产亚洲精品 亚洲国产午夜电影在线入口 精品无码一区在线观看 午夜国产精品视频 亚洲一级片免费 伊人久久大香线蕉综合影 国产精品久久影院 久碰香蕉精品视频在线观看 www.欧美精品 在线小视频国产 亚洲国产天堂久久综合图区 欧美一区二区三区不卡 日韩美女福利视频 九九精品免视频国产成人 不卡国产00高中生在线视频 亚洲第一页在线视频 欧美日韩在线播放成人 99re视频这里只有精品 国产精品91在线 精品乱码一区二区三区在线 国产区久久 91麻豆精品国产自产在线观看一区 日韩精品成人在线 九九热在线观看 国产精品久久不卡日韩美女 欧美一区二区三区综合色视频 欧美精品免费一区欧美久久优播 国产精品网址 国产专区中文字幕 国产精品欧美亚洲韩国日本久久 日韩美香港a一级毛片 久久精品123 欧美一区二区三区免费看 99r在线视频 亚洲精品国产字幕久久vr 国产综合激情在线亚洲第一页 91免费国产精品 日韩免费小视频 亚洲国产精品综合一区在线 国产亚洲第一伦理第一区 在线亚洲精品 国产精品一区二区制服丝袜 国产在线成人精品 九九精品免视频国产成人 亚洲国产网 欧美日韩亚洲一区二区三区在线观看 在线亚洲精品 欧美一区二区三区高清视频 国产成人精品男人的天堂538 欧美日韩在线观看区一二 亚洲欧美一区二区久久 久久精品中文字幕首页 日本高清www午夜视频 久久精品国产免费 久久999精品 亚洲国产精品欧美综合 88国产精品视频一区二区三区 91久久偷偷做嫩草影院免费看 国产精品夜色视频一区二区 欧美日韩导航 国产成人啪精品午夜在线播放 一区二区视频在线免费观看 99久久精品国产自免费 精液呈暗黄色 久久99国产精品 日本精品久久久久久久久免费 精品国产97在线观看 99re视频这里只有精品 国产视频91在线 999av视频 亚洲美女视频一区二区三区 久久97久久97精品免视看 亚洲国产成人久久三区 99久久亚洲国产高清观看 日韩毛片在线视频 综合激情在线 91福利一区二区在线观看 一区二区视频在线免费观看 激情粉嫩精品国产尤物 国产成人精品曰本亚洲78 国产成人精品本亚洲 国产精品成人免费视频 国产成人啪精品视频免费软件 久久精品国产亚洲妲己影院 国产精品成人久久久久久久 久久大香线蕉综合爱 欧美一区二区三区高清视频 99热国产免费 在线观看欧美国产 91精品视频在线播放 国产精品福利社 欧美精品一区二区三区免费观看 国产一区二区免费视频 国产午夜精品一区二区 精品视频在线观看97 91精品福利久久久 国产一区福利 国产综合激情在线亚洲第一页 国产精品久久久久久久久久久不卡 九色国产 在线日韩国产 黄网在线观看 亚洲一区小说区中文字幕 中文字幕丝袜 日本二区在线观看 日本国产一区在线观看 欧美日韩一区二区三区久久 欧美精品亚洲精品日韩专 国产日产亚洲精品 久久综合九色综合欧美播 亚洲国产欧美无圣光一区 欧美视频区 亚洲乱码视频在线观看 久久无码精品一区二区三区 九九热精品免费视频 久久99精品久久久久久牛牛影视 国产精品成久久久久三级 国产一区福利 午夜国产精品视频 日本二区在线观看 99久久网站 国产亚洲天堂 精品国产一区二区三区不卡 亚洲国产日韩在线一区 国产成人综合在线观看网站 久久免费高清视频 欧美在线导航 午夜精品久久久久久99热7777 欧美久久综合网 国产小视频精品 国产尤物在线观看 亚洲国产精品综合一区在线 欧美一区二区三区不卡视频 欧美黑人欧美精品刺激 日本福利在线观看 久久国产偷 国产手机精品一区二区 国产热re99久久6国产精品 国产高清啪啪 欧美亚洲国产成人高清在线 国产在线第三页 亚洲综合一区二区三区 99r在线视频 99精品久久久久久久婷婷 国产精品乱码免费一区二区 国产在线精品福利91香蕉 国产尤物视频在线 五月婷婷亚洲 中文字幕久久综合伊人 亚洲精品一级毛片 99国产精品电影 在线视频第一页 久久99国产精品成人欧美 国产白白视频在线观看2 成人精品一区二区www 亚洲成人网在线观看 麻豆91在线视频 色综合合久久天天综合绕视看 久久精品国产免费高清 国产不卡一区二区三区免费视 欧美国产中文 99精品欧美 九九在线精品 国产中文字幕在线免费观看 国产一区中文字幕在线观看 国产成人一级 国产精品一区二区制服丝袜 国产一起色一起爱 亚洲精品成人在线 亚洲欧美精品在线 国产欧美自拍视频 99精品久久久久久久婷婷 久99视频 国产热re99久久6国产精品 视频一区亚洲 国产精品视频分类 国产精品成在线观看 99re6久精品国产首页 亚洲在成人网在线看 亚洲国产日韩在线一区 久久国产三级 日韩国产欧美 欧美在线一区二区三区 国产精品美女一级在线观看 成人午夜免费福利视频 亚洲天堂精品在线 91精品国产手机 欧美日韩视频在线播放 狠狠综合久久综合鬼色 九一色视频 青青视频国产 亚洲欧美自拍一区 中文字幕天天躁日日躁狠狠躁97 日韩免费大片 996热视频 伊人成综合网 亚洲天堂欧美 日韩精品亚洲人成在线观看 久久综合给会久久狠狠狠 日韩精品亚洲人成在线观看 日韩国产欧美 亚洲成aⅴ人片在线影院八 亚洲精品1区 99久久精品免费 国产精品高清在线观看 国产精品久久久免费视频 在线亚洲欧美日韩 91在线看视频 国产精品96久久久久久久 欧美日韩国产成人精品 91在线亚洲 热久久亚洲 国产精品美女免费视频观看 日韩在线毛片 亚洲永久免费视频 九九免费在线视频 亚洲一区网站 日本高清二区视频久二区 精品国产美女福利在线 伊人久久艹 国产精品久久久久三级 欧美成人精品第一区二区三区 99久久精品国产自免费 在线观看日韩一区 国产中文字幕一区 成人免费午夜视频 欧美日韩另类在线 久久99国产精品成人欧美 色婷婷中文网 久久天天躁夜夜躁狠狠躁2020 欧美成人伊人久久综合网 国产精品福利资源在线 国产伦精品一区二区三区高清 国产精品亚洲综合色区韩国 亚洲一区欧美日韩 色综合视频 国语自产精品视频在线区 国产高清a 成人国内精品久久久久影 国产在线精品香蕉综合网一区 国产不卡在线看 国产成人精品精品欧美 国产欧美日韩综合精品一区二区三区 韩国电影一区二区 国产在线视频www色 91中文字幕在线一区 国产人成午夜免视频网站 亚洲综合一区二区三区 色综合视频一区二区观看 久久五月网 九九热精品在线观看 国产一区二区三区国产精品 99久热re在线精品996热视频 亚洲国产网 在线视频亚洲一区 日韩字幕一中文在线综合 国产高清一级毛片在线不卡 精品国产色在线 国产高清视频一区二区 精品日本久久久久久久久久 亚洲国产午夜精品乱码 成人免费国产gav视频在线 日韩欧美一区二区在线观看 欧美曰批人成在线观看 韩国电影一区二区 99re这里只有精品6 日韩精品一区二区三区视频 99re6久精品国产首页 亚洲欧美一区二区三区导航 欧美色图一区二区三区 午夜精品视频在线观看 欧美激情在线观看一区二区三区 亚洲热在线 成人国产精品一区二区网站 亚洲一级毛片在线播放 亚洲一区小说区中文字幕 亚洲午夜久久久久影院 国产自产v一区二区三区c 国产精品视频免费 久久调教视频 国产成人91激情在线播放 国产精品欧美亚洲韩国日本久久 久久亚洲日本不卡一区二区 91中文字幕网 成人国产在线视频 国产视频91在线 欧美成人精品第一区二区三区 国产精品福利在线 久久综合九色综合精品 欧美一区二区三区精品 久久国产综合尤物免费观看 久久99青青久久99久久 日韩精品免费 久久国产精品999 91亚洲视频在线观看 国产精品igao视频 色综合区 在线亚洲欧国产精品专区 国产一区二区三区在线观看视频 亚洲精品成人在线 一区二区国产在线播放 中文在线亚洲 亚洲精品第一国产综合野 国产一区二区精品久久 一区二区三区四区精品视频 99热精品久久 中文字幕视频二区 国产成人精品男人的天堂538 99精品影视 美女福利视频一区二区 久久午夜夜伦伦鲁鲁片 综合久久久久久久综合网 国产精品国产欧美综合一区 国产99视频在线观看 国产亚洲女在线精品 婷婷影院在线综合免费视频 国产亚洲3p一区二区三区 91成人爽a毛片一区二区 亚洲一区二区高清 国产欧美亚洲精品第二区首页 欧美日韩导航 亚洲高清二区 欧美激情观看一区二区久久 日韩毛片在线播放 亚洲欧美日韩高清中文在线 亚洲日本在线播放 国产精品一区二区制服丝袜 精品国产一区二区三区不卡 国产不卡在线看 国产欧美网站 四虎永久在线观看视频精品 国产黄色片在线观看 夜夜综合 一本色道久久综合狠狠躁篇 欧美亚洲综合另类在线观看 国产91在线看 伊人久久国产 欧美一区二区在线观看免费网站 国产精品久久久久三级 久久福利 日韩中文字幕a 亚洲午夜久久久久影院 91在线高清视频 国产亚洲一区二区三区啪 久久人精品 国产精品亚洲午夜一区二区三区 综合久久久久久 久久伊人一区二区三区四区 国产综合久久久久久 日韩一区精品视频在线看 国产精品日韩欧美制服 日本精品1在线区 99re视频 无码av免费一区二区三区试看 国产视频1区 日韩欧美中文字幕一区 日本高清中文字幕一区二区三区a 亚洲国产欧美无圣光一区 国产在线视频一区二区三区 欧美国产第一页 在线亚洲欧美日韩 日韩中文字幕第一页 在线不卡一区二区 伊人久久青青 国产精品一区二区在线播放 www.五月婷婷 麻豆久久婷婷国产综合五月 亚洲精品区 久久国产欧美另类久久久 99在线视频免费 伊人久久中文字幕久久cm 久久精品成人免费看 久久这里只有精品首页 88国产精品视频一区二区三区 中文字幕日本在线mv视频精品 国产在线精品成人一区二区三区 伊人精品线视天天综合 亚洲一区二区黄色 国产尤物视频在线 亚洲精品99久久久久中文字幕 国产一区二区三区免费观看 伊人久久大香线蕉综合电影网 国产成人精品区在线观看 日本精品一区二区三区视频 日韩高清在线二区 久久免费播放视频 一区二区成人国产精品 国产精品免费精品自在线观看 亚洲精品视频二区 麻豆国产精品有码在线观看 精品日本一区二区 亚洲欧洲久久 久久中文字幕综合婷婷 中文字幕视频在线 国产成人精品综合在线观看 91精品国产91久久久久福利 精液呈暗黄色 香蕉国产综合久久猫咪 国产专区精品 亚洲精品无码不卡 国产永久视频 亚洲成a人片在线播放观看国产 一区二区国产在线播放 亚洲一区二区黄色 欧美日韩在线观看视频 亚洲精品另类 久久国产综合尤物免费观看 国产一区二区三区国产精品 高清视频一区 国产精品igao视频 国产精品资源在线 久久综合精品国产一区二区三区 www.五月婷婷 精品色综合 99热国产免费 麻豆福利影院 亚洲伊人久久大香线蕉苏妲己 久久电影院久久国产 久久精品伊人 在线日韩理论午夜中文电影 亚洲国产欧洲综合997久久 伊人国产精品 久草国产精品 欧美一区精品二区三区 亚洲成人高清在线 91免费国产精品 日韩精品福利在线 国产一线在线观看 国产不卡在线看 久久99青青久久99久久 亚洲精品亚洲人成在线播放 99久久免费看国产精品 国产日本在线观看 青草国产在线视频 麻豆久久婷婷国产综合五月 国产中文字幕一区 91久久精品国产性色也91久久 国产一区a 国产欧美日韩成人 国产亚洲女在线精品 一区二区美女 中文字幕在线2021一区 在线小视频国产 久久这里只有精品首页 国产在线第三页 欧美日韩中文字幕 在线亚洲+欧美+日本专区 精品国产一区二区三区不卡 久久这里精品 欧美在线va在线播放 精液呈暗黄色 91精品国产手机 91在线免费播放 欧美视频亚洲色图 欧美国产日韩精品 日韩高清不卡在线 精品视频免费观看 欧美日韩一区二区三区四区 国产欧美亚洲精品第二区首页 亚洲韩精品欧美一区二区三区 国产精品视频免费 在线精品小视频 久久午夜夜伦伦鲁鲁片 国产无套在线播放 久热这里只精品99re8久 欧美久久久久 久久香蕉国产线看观看精品蕉 国产成人精品男人的天堂538 亚洲人成网站色7799在线观看 日韩在线第二页 一本色道久久综合狠狠躁篇 国产一区二区三区不卡在线观看 亚洲乱码在线 在线观看欧美国产 久久福利青草精品资源站免费 国产玖玖在线观看 在线亚洲精品 亚洲成aⅴ人在线观看 精品91在线 欧美一区二三区 日韩中文字幕视频在线 日本成人一区二区 日韩免费专区 国内精品在线观看视频 久久国产综合尤物免费观看 国产精品系列在线观看 一本一道久久a久久精品综合 亚洲免费播放 久久精品国产免费 久久人精品 亚洲毛片网站 亚洲成a人一区二区三区 韩国福利一区二区三区高清视频 亚洲精品天堂在线 一区二区三区中文字幕 亚洲国产色婷婷精品综合在线观看 亚洲国产成人久久笫一页 999国产视频 国产精品香港三级在线电影 欧美日韩一区二区三区四区 日韩国产欧美 国产精品99一区二区三区 午夜国产精品理论片久久影院 亚洲精品中文字幕麻豆 亚洲国产高清视频 久久免费手机视频 日韩a在线观看 五月婷婷亚洲 亚洲精品中文字幕麻豆 中文字幕丝袜 www国产精品 亚洲天堂精品在线 亚洲乱码一区 国产日韩欧美三级 久久999精品 伊人热人久久中文字幕 久热国产在线视频 国产欧美日韩在线观看一区二区三区 国产一二三区在线 日韩国产欧美 91精品国产91久久久久 亚洲一区小说区中文字幕 精品一区二区免费视频 国产精品视频免费 国产精品亚洲综合色区韩国 亚洲国产精品成人午夜在线观看 欧美国产日韩精品 中文字幕精品一区二区精品