[發明專利]一種探測JAVA 程序文件擾動的方法及裝置有效
| 申請號: | 201210004813.9 | 申請日: | 2012-01-09 |
| 公開(公告)號: | CN103198011A | 公開(公告)日: | 2013-07-10 |
| 發明(設計)人: | 馬治國;何思遠 | 申請(專利權)人: | 阿里巴巴集團控股有限公司 |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36 |
| 代理公司: | 北京同達信恒知識產權代理有限公司 11291 | 代理人: | 郭潤湘 |
| 地址: | 英屬開曼群島大開曼*** | 國省代碼: | 開曼群島;KY |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 探測 java 程序 文件 擾動 方法 裝置 | ||
技術領域
本申請涉及計算機技術領域,尤其涉及一種探測JAVA程序文件擾動的方法及裝置。
背景技術
程序員編寫程序的過程中,每個程序都會有很多不同的版本,從而需要程序員很好的管理各版本的代碼,在需要的時間可以取出需要的版本,并且每個版本都有一個完整的說明。SVN(Sub?Version,代碼版本管理軟件)作為版本管理工具。
SVN(Subversion,版本控制系統)與CVS一樣,是一個跨平臺的軟件,支持大多數常見的操作系統。作為一個開源的版本控制系統,Subversion管理著隨時間改變的數據。這些數據放置在一個中央資料檔案庫(repository)中。這個檔案庫很像一個普通的文件服務器,不過它會記住每一次文件的變動。這樣你就可以把檔案恢復到舊的版本,或是瀏覽文件的變動歷史。Subversion是一個通用的系統,可用來管理任何類型的文件,其中包括了程序源碼。
現有技術中如果使用SVN代碼版本管理軟件對不同版本的JAVA程序文件進行檢測,在JAVA代碼生產過程中,只能通過文本對比方法檢測文本擾動,探測到的變化是與JAVA類和API無關的,則通過文本對比方法檢測文本擾動,不能探測到JAVA類和API的變化。而在實際的工程生產中,如果需要檢測到JAVA類和API的變化,則需要依靠人工的干預來組織JAVA類和API發生的變化。一個普通的工程包含的JAVA類和API數量是驚人的,從而導致實現JAVA類和API檢測的難度大,程序復雜。
發明內容
本申請實施例提供一種探測JAVA程序文件擾動的方法及裝置,本申請實施例所提供的方法和裝置解決了現有技術中不能檢測到程序代碼中類和API信息發生擾動的問題。
本申請實施例提供一種探測JAVA程序文件擾動的方法,該方法包括:
在第一程序文件運行過程中,根據運行過的每個類和每個類中包括的方法得到每個類的第一類標簽以及每個類包括的方法的第一方法標簽;
所述第一程序文件源代碼發生變化生成第二程序文件后,掃描第二程序文件的java字節碼文件確定所述第二程序文件中包括類及每個類所包括的方法,并根據每個類和每個方法的內容信息確定每個類的第二類標簽以及每個類包括的每個方法的第二方法標簽,將所述第二類標簽和第二方法標簽插裝到所述java字節碼文件;
將java字節碼文件中的第二類標簽和第二方法標簽與所述第一類標簽和第一方法標簽進行比較,根據比較結果確定第二程序文件相對于第一程序文件發生了擾動的類和方法。
根據上述方法本申請實施例還提供一種探測JAVA程序文件擾動的裝置,該裝置包括:
動態標簽獲取模塊,用于在第一程序文件運行過程中,根據運行過的每個類和每個類中包括的方法得到每個類的第一類標簽以及每個類包括的方法的第一方法標簽;
靜態標簽獲取模塊,用于所述程序文件源代碼發生變化生成第二程序文件后,掃描第二程序文件的java字節碼文件確定所述第二程序文件中包括類及每個類所包括的方法,并根據每個類和每個方法的內容信息確定每個類的第二類標簽以及每個類包括的每個方法的第二方法標簽,將所述第二類標簽和第二方法標簽插裝到所述java字節碼文件;
擾動確定模塊,用于將java字節碼文件中的第二類標簽和第二方法標簽與所述第一類標簽和第一方法標簽進行比較,根據比較結果確定第二程序文件相對于第一程序文件發生了擾動的類和方法。
上述技術方案中的一個或兩個,至少具有如下技術效果:
本申請實施例所提供的方法和裝置,采用JAVA字節碼來探測JAVA類與API擾動,從而能夠檢測到java程序中出現擾動的類和API信息,有效降低了JAVA類和API檢測的難度和復雜度。
附圖說明
圖1為本申請實施例一種探測JAVA程序文件擾動的方法的流程圖;
圖2為本申請實施例現有技術中em、ec文件結構;
圖3為本申請實施例進行插裝后的em、ec;
圖4為本申請實施例插裝方法標簽后的em文件結構示意圖;
圖4A為本申請實施例插裝方法標簽后的cm文件結構示意圖;
圖5為本申請實施例在em文件中寫入和讀出methods?stamp的方法流程圖;
圖6為本申請實施例在ec文件中寫入和讀出methods?stamp的方法流程圖;
圖7為本申請實施例對比em和ec文件中methods?stamp的方法流程圖;
圖8為本申請實施例一種探測JAVA程序文件擾動的裝置的結構示意圖;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于阿里巴巴集團控股有限公司,未經阿里巴巴集團控股有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201210004813.9/2.html,轉載請聲明來源鉆瓜專利網。





