亚洲有码Av一区二区三区_国产高清啪啪免费视频_69色视频国产_国产成人人人爆出白浆_国产精品自在线拍国_一本久久伊人热热精品无码_午夜性刺激在线看免费带字幕_助力高品质欧美狂喷水_亚洲精品日韩无码_精品无码一区二区三区蜜臀_麻豆高清国产AV_熟妇人素无码中文字幕_亚洲a级片在线观看_国产欧美日韩三区_99国产成人高清在线观看

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營的一線實(shí)戰(zhàn)洞察。

java.lang.foreign受限方法報(bào)錯(cuò)排查:--enable-native-access模塊授權(quán)指南

java.lang.foreign受限方法報(bào)錯(cuò)排查:--enable-native-access模塊授權(quán)指南 第一次用java.lang.foreign做原生調(diào)用那陣子我跑一個(gè)連strlen都算不上復(fù)雜的最小示例結(jié)果控制臺(tái)沒輸出反而甩出來一段警告WARNING: A restricted method in java.lang.foreign has been called.后面還跟著一句提示意思是“請(qǐng)考慮在啟動(dòng)參數(shù)里加上--enable-native-access”。我當(dāng)時(shí)腦子里全是問號(hào)代碼里沒設(shè)密碼、沒建用戶組、沒碰安全策略文件怎么突然就冒出來一個(gè)“檢查權(quán)限”的提示這和我理解的文件權(quán)限、用戶權(quán)限完全不是一回事。后來把整條鏈路啃明白之后才發(fā)現(xiàn)這個(gè)“檢查權(quán)限”背后是一套既簡單又容易被忽略的機(jī)制。它不問“你是誰”而問“你所在的模塊有沒有被明確授權(quán)”。如果你也在用 FFM API或者正在把舊代碼從 JNI 遷移到j(luò)ava.lang.foreign這篇文章應(yīng)該能幫你省下大量排查時(shí)間。1. 報(bào)錯(cuò)信息里藏著的那道檢查門1.1 一次并不罕見的踩雷經(jīng)歷先還原一下當(dāng)時(shí)的場(chǎng)景。我用的是較新的 JDK寫了一個(gè)非常標(biāo)準(zhǔn)的strlen調(diào)用import java.lang.foreign.*; import java.lang.invoke.MethodHandle; public class NativeDemo { public static void main(String[] args) throws Throwable { Linker linker Linker.nativeLinker(); SymbolLookup lookup linker.defaultLookup(); MethodHandle strlen linker.downcallHandle( lookup.find(strlen).orElseThrow(), FunctionDescriptor.of(JAVA_LONG, ADDRESS) ); try (Arena arena Arena.ofConfined()) { MemorySegment message arena.allocateFrom(hello); long len (long) strlen.invoke(message.address()); System.out.println(len len); } } }代碼本身沒有任何問題正常編譯正常啟動(dòng)??墒窃跓o條件運(yùn)行的時(shí)候終端里出現(xiàn)了警告在某些新版本里干脆直接拋出一個(gè)IllegalCallerException堆棧信息大致是這個(gè)形貌Exception in thread main java.lang.IllegalCallerException: Illegal caller第一次看到這個(gè)異常名稱很容易往“Java 安全檢查”方向想。但注意這里沒有SecurityManager沒有AccessController也沒有任何配置文件。它檢查的不是沙箱策略而是模塊系統(tǒng)里的一項(xiàng)授權(quán)標(biāo)記。1.2 什么是 restricted method它到底在檢查什么java.lang.foreign里有一批方法被官方標(biāo)注為“受限方法restricted method”。典型代表就是上面用到的Linker.downcallHandle此外還包括MemorySegment.reinterpret、MemorySegment.address這類能直接操作原始地址的方法。為什么要給它們單獨(dú)做一層標(biāo)記因?yàn)檫@類方法一旦被調(diào)用實(shí)際上就跳過了 Java 的世界直接進(jìn)入原生層。原生層沒有數(shù)組越界檢查、沒有 GC 托底、沒有類型安全一個(gè)指針寫錯(cuò)就能讓整個(gè) JVM 進(jìn)程崩潰甚至污染進(jìn)程內(nèi)存。所以 JDK 在這里加了一道“調(diào)用者核驗(yàn)”的門調(diào)用受限方法時(shí)JVM 會(huì)檢查“當(dāng)前調(diào)用代碼到底屬于哪個(gè)模塊”然后看這個(gè)模塊有沒有被顯式授權(quán)訪問原生層。如果沒有授權(quán)表現(xiàn)就是開頭那種警告或者在新版本里直接拋IllegalCallerException。這里要特別強(qiáng)調(diào)它檢查的“權(quán)限”不在代碼類上也不在某個(gè)對(duì)象上而在模塊上。你用 IDE 直接右鍵運(yùn)行一個(gè)普通 Java 類它屬于“未命名模塊unnamed module”你用module-info.java打了一個(gè) jar 包跑起來它屬于某個(gè)命名模塊。這兩類模塊在原生訪問授權(quán)上的待遇完全不同。2. 三種檢查從模塊聲明到 JVM 參數(shù)再到內(nèi)存段2.1 第一道門模塊系統(tǒng)對(duì)調(diào)用者身份的核驗(yàn)很多人會(huì)把注意力全放在--enable-native-access參數(shù)上但我要先潑一盆冷水這個(gè)參數(shù)只是第一道門的一部分。Java 9 引入模塊系統(tǒng)之后“你的代碼住在哪個(gè)模塊”就成了一切授權(quán)的前提。對(duì)java.lang.foreign來說從 JDK 22 正式版開始API 已經(jīng)移到了java.base模塊里所以你在module-info.java里通常不需要顯式寫requires java.lang.foreign——因?yàn)樗驮诨A(chǔ)模塊里。這一點(diǎn)和早期孵化版不一樣。早期版本包名是jdk.incubator.foreign那時(shí)候模塊聲明里必須加module my.module { requires jdk.incubator.foreign; }很多人從老教程里抄來這段結(jié)果在新版本里發(fā)現(xiàn)jdk.incubator.foreign這個(gè)模塊根本不存在或者包名對(duì)不上于是開始懷疑自己的模塊配置。真正和“檢查權(quán)限”強(qiáng)相關(guān)的是這個(gè)事實(shí)即使 API 本身在java.base訪問原生函數(shù)的行為仍然被額外控制。JVM 在調(diào)用受限方法時(shí)取的是調(diào)用者模塊而不是 API 聲明所在模塊。換句話說API 放在哪個(gè)包里不重要重要的是“誰在調(diào)用”。判斷調(diào)用者模塊的過程實(shí)現(xiàn)層用了StackWalker去掃描調(diào)用棧。這也是為什么在堆棧信息里官方建議信息寫的是“Please consider adding--enable-native-accessto the command line for your module”。它不是在指 JDK 內(nèi)部模塊而是在指你自己的模塊名。2.2 第二道門--enable-native-access的顯式授權(quán)這是整個(gè)機(jī)制里最核心的一道開關(guān)。它的作用就是提前告訴 JVM我允許某些模塊里的代碼執(zhí)行原生訪問。命令行寫法是這樣的java --enable-native-accessALL-UNNAMED -cp . NativeDemoALL-UNNAMED是一個(gè)特殊標(biāo)記代表“所有未命名模塊”。只要你沒有寫module-info.java代碼就跑在未命名模塊里這個(gè)參數(shù)就能讓普通的 classpath 應(yīng)用被授權(quán)。如果項(xiàng)目已經(jīng)模塊化了模塊名是com.example.app可以精確授權(quán)java --enable-native-accesscom.example.app -p mods -m com.example.app/com.example.app.Main授權(quán)范圍是累加的可以用逗號(hào)分隔多個(gè)模塊java --enable-native-accesscom.example.core,com.example.app -p mods -m com.example.app/com.example.app.Main如果完全沒有加這個(gè)參數(shù)在 JDK 22/23 里首次調(diào)用受限方法時(shí)會(huì)打印警告程序還能繼續(xù)跑但在 JDK 24 及之后的版本未授權(quán)模塊會(huì)直接收到IllegalCallerException。這也是為什么網(wǎng)上文章和代碼片段給出的結(jié)論經(jīng)常互相矛盾——大家用的 JDK 版本不一樣看到的默認(rèn)行為當(dāng)然不一樣。還有個(gè)細(xì)節(jié)很容易被忽略--enable-native-access只在啟動(dòng) JVM 時(shí)有效不能靠代碼里的System.setProperty去動(dòng)態(tài)開啟。你想要授權(quán)就必須在java命令、IDE 運(yùn)行配置、構(gòu)建工具的 JVM 參數(shù)里把它寫進(jìn)去。2.3 第三道門MemorySegment 生命周期與訪問模式檢查除了入口處的受限方法檢查java.lang.foreign內(nèi)部還有另一類“權(quán)限感”很強(qiáng)的檢查那就是MemorySegment的訪問約束。Arena分為受限 Arenaconfined和共享 Arenashared。用Arena.ofConfined()創(chuàng)建的受限 Arena只能在創(chuàng)建它的線程里訪問別的線程一旦碰它立刻拋出WrongThreadException。這就是一種強(qiáng)制的線程擁有權(quán)檢查。Arena 關(guān)閉之后所有由它分配出來的MemorySegment會(huì)立刻變成無效狀態(tài)。繼續(xù)訪問會(huì)拋IllegalStateException錯(cuò)誤消息類似“Segment is already closed”。這相當(dāng)于資源生命周期上的權(quán)限鎖你拿著一個(gè)已經(jīng)釋放的內(nèi)存段的地址去訪問在下層原生代碼里可能就是釋放后再使用use-after-free漏洞Java 層這里直接攔住。我在遷移 JNI 代碼的時(shí)候?qū)@種設(shè)計(jì)特別有感觸。JNI 里只要DeleteLocalRef時(shí)機(jī)不對(duì)經(jīng)常會(huì)遇到摸不著頭腦的崩潰而java.lang.foreign的 Arena 模型把分配、使用、釋放圈在同一個(gè)作用域里不合規(guī)就報(bào)異常不會(huì)讓你帶著壞引用一路沖到原生層。3. 完整配置姿勢(shì)讓原生訪問合法放行3.1 命令行與構(gòu)建工具怎么寫先明確一點(diǎn)不要用“每次運(yùn)行前手動(dòng)敲參數(shù)”這種方式當(dāng)長期方案要把它固化到構(gòu)建配置里。我用 Maven 時(shí)會(huì)這樣配exec-maven-pluginplugin groupIdorg.codehaus.mojo/groupId artifactIdexec-maven-plugin/artifactId version3.2.0/version configuration mainClasscom.example.NativeDemo/mainClass arguments argument--enable-native-accessALL-UNNAMED/argument /arguments /configuration /plugin等等上面這種寫法是錯(cuò)的。exec-maven-plugin的arguments是傳給程序主類的參數(shù)不是 JVM 參數(shù)。JVM 參數(shù)要寫在jvmArguments里或者通過MAVEN_OPTS傳。正確配置是plugin groupIdorg.codehaus.mojo/groupId artifactIdexec-maven-plugin/artifactId version3.2.0/version configuration mainClasscom.example.NativeDemo/mainClass jvmArguments--enable-native-accessALL-UNNAMED/jvmArguments /configuration /plugin這個(gè)區(qū)分很重要我見過不止一個(gè)人把參數(shù)寫到arguments里結(jié)果程序收到的仍然是空參數(shù)警告照舊。如果你用 Gradle可以直接在JavaExec任務(wù)里加tasks.named(run) { jvmArgs --enable-native-accessALL-UNNAMED }測(cè)試場(chǎng)景同樣要處理。用 JUnit 跑單元測(cè)試時(shí)Surefire 默認(rèn)會(huì) fork 一個(gè) JVM這時(shí)候必須給 fork 的進(jìn)程加參數(shù)不然主運(yùn)行配置配好了測(cè)試?yán)镎諛訄?bào)警告plugin groupIdorg.apache.maven.plugins/groupId artifactIdmaven-surefire-plugin/artifactId version3.2.5/version configuration argLine--enable-native-accessALL-UNNAMED/argLine /configuration /pluginGradle 的 Test 任務(wù)也要單獨(dú)設(shè)置tasks.withType(Test).configureEach { jvmArgs --enable-native-accessALL-UNNAMED }注意到一個(gè)反向業(yè)務(wù)了嗎這不是“給程序加個(gè)開關(guān)”這么簡單凡是會(huì)啟動(dòng)新 JVM 的場(chǎng)景都得分別配一遍運(yùn)行、測(cè)試、jlink出來的鏡像、IDE 的調(diào)試會(huì)話一個(gè)都不能漏。3.2 module-info.java 中的聲明細(xì)節(jié)如果你的項(xiàng)目還是 classpath 應(yīng)用ALL-UNNAMED就夠了。但一旦你決定模塊化就要考慮如果每次都用ALL-UNNAMED其實(shí)是一種很粗放的授權(quán)方式——它把所有未命名代碼都放進(jìn)了白名單。更好的做法是給每個(gè)模塊精確授權(quán)。假設(shè)項(xiàng)目結(jié)構(gòu)是這樣src/ com.example.core/ // 核心模塊封裝原生調(diào)用 com.example.app/ // 應(yīng)用模塊只調(diào)用 core 的接口core模塊里的module-info.java可能是module com.example.core { exports com.example.core.nativebridge; }core模塊內(nèi)部真正調(diào)用Linker.nativeLinker()的類必須能訪問java.lang.foreign。前面講過JDK 22 之后 API 在java.base所以不需要額外requires。但如果你為了兼容還在用 JDK 17/21 的孵化 APImodule-info.java就要加module com.example.core { requires jdk.incubator.foreign; exports com.example.core.nativebridge; }啟動(dòng)時(shí)精確授權(quán)的寫法是java --enable-native-accesscom.example.core \ -p mods \ -m com.example.app/com.example.Main注意應(yīng)用模塊com.example.app本身沒碰受限方法所以不需要給它授權(quán)。這道門只認(rèn)“真正調(diào)用受限方法的那個(gè)模塊”。3.3 多模塊項(xiàng)目里授權(quán)范圍的選擇這里要談一個(gè)實(shí)際經(jīng)驗(yàn)?zāi)膫€(gè)模塊該被授權(quán)我的判斷標(biāo)準(zhǔn)是誰直接調(diào)用java.lang.foreignAPI誰就需要被授權(quán)。如果模塊 A 里寫了Linker.nativeLinker()那就給 A 授權(quán)。如果模塊 B 只是通過普通 Java 接口調(diào) A 的方法B 跟原生層沒有任何直接接觸不需要授權(quán)。最忌諱的做法是為了省事把所有模塊全部塞進(jìn)名單或者干脆--enable-native-accessALL-UNNAMED一勞永逸。短期沒問題長期會(huì)降低問題的可定位性——一旦有依賴庫偷偷調(diào)用原生代碼你不會(huì)知道是從誰那里進(jìn)來的。還有種特殊情況如果你把某個(gè) jar 放在 classpath 而不是 module path那它就是自動(dòng)模塊。自動(dòng)模塊的名字默認(rèn)從 jar 文件名推導(dǎo)而且自動(dòng)模塊默認(rèn)也會(huì)讀取所有模塊屬于“特權(quán)階級(jí)”。我不建議為了規(guī)避授權(quán)問題而故意把 jar 丟到 classpath 去當(dāng)自動(dòng)模塊那相當(dāng)于關(guān)掉了模塊系統(tǒng)的邊界和你安裝這個(gè) API 的安全初衷相悖。4. 這道檢查究竟在防什么4.1 原生內(nèi)存不是 Java 的游樂場(chǎng)“為什么不直接讓我調(diào)”這是很多人的第一反應(yīng)。答案其實(shí)很實(shí)在原生層一個(gè)問題就能讓 JVM 原地消失。Java 世界里你寫array[100]越界了拋ArrayIndexOutOfBoundsException你寫segment.get(ValueLayout.JAVA_INT, 99999)Java 層會(huì)根據(jù) segment 范圍做邊界檢查非法訪問照樣拋異常。但一旦把MemorySegment.address()傳給原生函數(shù)原生函數(shù)內(nèi)部的行為 Java 完全管不住。它可能按錯(cuò)誤的偏移量寫一片內(nèi)存可能踩在堆管理結(jié)構(gòu)上甚至可能寫壞另一個(gè) Java 對(duì)象背后的數(shù)據(jù)。我在一次測(cè)試?yán)锕室庾屧瘮?shù)越界寫了幾字節(jié)結(jié)果不是報(bào)錯(cuò)而是直接 core dump。那一刻我才真正理解為什么 JVM 要卡住“未授權(quán)模塊的受限方法調(diào)用”。這不是為了給你添麻煩而是為了確保每個(gè)要進(jìn)入原生層的人都明確知道你正在離開 Java 的安全托底區(qū)。這套檢查和普通 Java 方法調(diào)用的開銷還不太一樣。它發(fā)生在方法入口用模塊元數(shù)據(jù)做一次一次性的狀態(tài)判斷而不是在每一次內(nèi)存訪問時(shí)都做細(xì)粒度的權(quán)限枚舉。實(shí)際調(diào)用鏈路里真正高頻的指針讀寫是不做逐次權(quán)限檢查的性能敏感路徑?jīng)]有受拖累。4.2 和傳統(tǒng) SecurityManager 權(quán)限的區(qū)別如果你經(jīng)歷過 Java 老版本可能會(huì)想起SecurityManager里的checkLink、checkPropertyAccess這些方法。那是另外一套體系由全局安全管理器去讀策略文件逐條詢問“這次加載原生庫的操作合規(guī)嗎”。java.lang.foreign的檢查跟它完全不是一個(gè)物種。SecurityManager 是運(yùn)行時(shí)策略系統(tǒng)需要顯式安裝安全管理器維護(hù)策略文件而且能做的事很多很細(xì)。而 native access 檢查更接近“構(gòu)建期契約”你的模塊要么一開始就被 JVM 參數(shù)點(diǎn)名授權(quán)要么就不能調(diào)用受限方法。沒有中間地帶不需要運(yùn)行時(shí)問詢也沒有策略文件熱加載。換句話說SecurityManager 像小區(qū)保安逐個(gè)盤問訪客而--enable-native-access更像是發(fā)門禁卡。發(fā)卡名單在啟動(dòng)那一刻就定了進(jìn)不來的從一開始就進(jìn)不來。4.3 從警告到硬性報(bào)錯(cuò)的演進(jìn)邏輯理解這個(gè)機(jī)制最好的方式是順著 JDK 的演進(jìn)看一遍。JDK 22 正式把 Foreign Function Memory API 放進(jìn)java.lang.foreign同時(shí)規(guī)定了受限方法規(guī)則。但為了給生態(tài)過渡時(shí)間默認(rèn)行為只是打印警告。你什么都不配代碼也能跑只是終端里會(huì)有一條礙眼的 WARNING。到了 JDK 24事情變了。未授權(quán)模塊一旦調(diào)用受限方法直接拋IllegalCallerException不再給警告放行。為什么這么硬我個(gè)人的理解是警告是可以被忽略的但異常是不能被忽略的。如果在正式環(huán)境里某個(gè)第三方庫悄悄用了原生調(diào)用只打警告的話運(yùn)維日志可能被刷屏但服務(wù)還在跑問題被淹沒。一旦變成硬異常庫作者就必須在文檔里寫明“請(qǐng)?jiān)趩?dòng)時(shí)加上授權(quán)參數(shù)”應(yīng)用方也必須認(rèn)真對(duì)待每一次原生調(diào)用。這屬于典型的“用技術(shù)手段逼出明確的依賴關(guān)系”。我見過不少團(tuán)隊(duì)在 JDK 21 上升級(jí)到新 API日志里出現(xiàn)警告也沒當(dāng)回事等項(xiàng)目換到 JDK 24 突然崩了才反過頭配置參數(shù)。早一點(diǎn)把規(guī)則看懂后面就能少一次線上事故。5. 一個(gè)報(bào)錯(cuò)的完整排查鏈路5.1 最小復(fù)現(xiàn)場(chǎng)景與錯(cuò)誤輸出假設(shè)你從網(wǎng)上抄了一段代碼在本地跑起來終端里出現(xiàn)類似下面的輸出WARNING: A restricted method in java.lang.foreign has been called. WARNING: Please consider adding --enable-native-access to the command line.如果是在 JDK 24 上會(huì)變成Exception in thread main java.lang.IllegalCallerException: Illegal caller at java.base/java.lang.foreign.Linker.downcallHandle(Linker.java:186) at com.example.NativeDemo.main(NativeDemo.java:12)堆棧指向你項(xiàng)目里的主類但異常類型是IllegalCallerException。這時(shí)候第一反應(yīng)是去查Linker.java是不是有 bug——沒有真正的問題在你自己模塊。5.2 從報(bào)錯(cuò)到定位再到補(bǔ)授權(quán)先別急著加參數(shù)。第一步用下面這條命令確認(rèn)自己當(dāng)前代碼所在模塊java --module-path mods --list-modules | grep com.example或者直接在代碼里打印模塊信息System.out.println(NativeDemo.class.getModule().getName());如果沒有打印出模塊名說明代碼在未命名模塊里跑那授權(quán)目標(biāo)是ALL-UNNAMED如果有模塊名就用模塊名授權(quán)。第二步看堆棧里的調(diào)用點(diǎn)。堆棧最頂層可能顯示Linker.downcallHandle下面跟著你的調(diào)用類。調(diào)用類所在模塊就是要授權(quán)的模塊。如果堆棧里出現(xiàn)一層代理、一層反射就以代理對(duì)象所屬模塊為準(zhǔn)還是那句老話誰直接調(diào)受限方法誰拿授權(quán)。第三步補(bǔ)授權(quán)。未命名模塊java --enable-native-accessALL-UNNAMED -cp . NativeDemo命名模塊java --enable-native-accesscom.example.app -p mods -m com.example.app/com.example.Main5.3 修完后如何驗(yàn)證配置好以后重新啟動(dòng)。如果終端里那條 WARNING 消失了說明授權(quán)生效。如果你想確認(rèn)某個(gè)模塊到底有沒有被授權(quán)可以在代碼里臨時(shí)打印一下System.out.println(NativeDemo.class.getModule().isNativeAccessEnabled());Module.isNativeAccessEnabled()這個(gè)方法直接返回布爾值是最快速的驗(yàn)證方式。不過我建議把這種臨時(shí)調(diào)試輸出刪干凈因?yàn)樯a(chǎn)日志里塞個(gè)true/false沒有意義。還有個(gè)小坑如果你用 IDE 啟動(dòng)改了命令行參數(shù)但沒重啟 IDE 的 Java 進(jìn)程配置可能不生效。正常的調(diào)試流程是先看 IDE 的“Run Configuration”里 JVM 參數(shù)有沒有同步更新再跑一次。6. 版本差異與實(shí)際使用經(jīng)驗(yàn)6.1 不同 JDK 版本下的默認(rèn)行為對(duì)照這是我踩過坑以后整理出的對(duì)照直接給你JDK 版本包名/模塊未授權(quán)調(diào)用受限方法需要添加的啟動(dòng)參數(shù)JDK 16-18jdk.incubator.foreign基本沒有強(qiáng)約束孵化期行為一直在調(diào)整早期版本無需JDK 19-21jdk.incubator.foreignAPI 重新設(shè)計(jì)部分版本已經(jīng)開始提示推薦參數(shù)推薦--enable-native-accessJDK 22-23java.lang.foreign正式版打印 WARNING不阻止執(zhí)行--enable-native-access模塊名或ALL-UNNAMEDJDK 24java.lang.foreign正式版直接拋IllegalCallerException必須提前配置這個(gè)表格里最關(guān)鍵的分水嶺是 JDK 22 和 JDK 24。JDK 22 是 API 正式化JDK 24 是強(qiáng)制化。如果你的目標(biāo)運(yùn)行環(huán)境跨度比較大最穩(wěn)妥的做法是“永遠(yuǎn)顯式寫參數(shù)”不要依賴默認(rèn)行為。另外提醒一句老教程里常用的CLinker在 JDK 22 之后已經(jīng)改名成Linker包名從jdk.incubator.foreign變成java.lang.foreign。你要是還抄著舊代碼編譯都不會(huì)過更別提權(quán)限檢查了。6.2 實(shí)戰(zhàn)里的幾個(gè)提醒我自己的項(xiàng)目里輔了好幾個(gè)易踩的小坑單獨(dú)整理一下。第一測(cè)試進(jìn)程和主進(jìn)程要分開配置。主程序配了--enable-native-access不代表 Maven Surefire fork 出來的測(cè)試 JVM 也帶這個(gè)參數(shù)。在單元測(cè)試?yán)锱茉{(diào)用經(jīng)常發(fā)生在本地沒測(cè)出問題、CI 上莫名失敗的情況。第二jlink生成的運(yùn)行時(shí)也要帶參數(shù)。很多項(xiàng)目部署時(shí)用jlink裁剪 JDK生成獨(dú)立鏡像。此時(shí)命令不再是你原來的java而是build/bin/java。JVM 參數(shù)同樣需要傳build/bin/java --enable-native-accessALL-UNNAMED -m com.example.app/com.example.Main如果你把參數(shù)寫在啟動(dòng)腳本里一定要確保腳本實(shí)際執(zhí)行的是裁剪后的那個(gè) Java 運(yùn)行時(shí)。第三反射調(diào)用受限方法時(shí)調(diào)用者模塊以反射調(diào)用方的模塊為準(zhǔn)。如果你通過MethodHandle、反射代理再繞一層很容易搞混授權(quán)目標(biāo)。排查時(shí)優(yōu)先打印最接近Linker.downcallHandle的調(diào)用棧幀看那一幀歸屬哪個(gè)模塊。第四警惕自動(dòng)模塊。把不是模塊化的 jar 放到 module path它會(huì)變成自動(dòng)模塊自動(dòng)模塊默認(rèn)讀取所有模塊并且自動(dòng)獲得一堆權(quán)限。在授權(quán)模型里自動(dòng)模塊的行為比較特殊最好不要依賴它來“繞開”授權(quán)限制。正確姿勢(shì)永遠(yuǎn)是顯式管理好模塊依賴。6.3 和 JNI 共存的一點(diǎn)個(gè)人看法在java.lang.foreign成熟之前Java 調(diào)原生只能靠 JNI。很多存量庫的 JNI 代碼寫得很臟到處都是全局引用泄漏、奇怪的緩存維護(hù)成本高得嚇人。FFM API 的出現(xiàn)最大的價(jià)值不是“跑得更快”而是提供了更安全、更現(xiàn)代的內(nèi)存管理和調(diào)用模型。我自己的遷移策略是新寫的原生橋接層直接用java.lang.foreign存量 JNI 庫如果是穩(wěn)定狀態(tài)、改動(dòng)很頻繁就繼續(xù)保留 JNI只有需要大幅度重構(gòu)或者反復(fù)出現(xiàn)崩潰的 JNI 代碼才考慮逐步重寫。有一個(gè)判斷點(diǎn)很實(shí)用看你的數(shù)據(jù)要跨邊界多少次。FFM API 里MemorySegment可以把一段內(nèi)存的分配、釋放都收在 Arena 作用域中比 JNI 里手動(dòng)NewByteArray、ReleaseByteArrayElements要清爽得多。如果每次調(diào)用都會(huì)產(chǎn)生大量臨時(shí)數(shù)據(jù)選 FMA 的收益會(huì)更明顯。說到底--enable-native-access不是一道多余的坎它相當(dāng)于 JVM 在把你往原生世界推之前讓你先簽一份“我已閱讀風(fēng)險(xiǎn)提示”的確認(rèn)書。前期多花十分鐘把模塊授權(quán)配好后面就不會(huì)因?yàn)橐痪?WARNING 或者一次IllegalCallerException卡住整個(gè)上線流程。我自己的體會(huì)是越早把“模塊 授權(quán)”這個(gè)心智模型建立起來越不容易被版本差異繞暈。以后不管 JDK 怎么改都會(huì)發(fā)現(xiàn)萬變不離其宗原生訪問是特權(quán)操作特權(quán)必須明確授予而授予的憑證就是啟動(dòng)參數(shù)里那串模塊名單。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
久久久久骚| 中文字幕88av在线| 美女诱惑一区| 九九九精品一区二区无码| www色日本| 亚洲欧美不卡线| 青久久| 婷婷五月在线视频| 91九久| 久久精品国产亚洲AV无码做| 97在线免费观看| 97在线观看免费视频l| 爱做久久久久久| 亚洲另类欧美精品| 精品久久久久久AV无码| 日产操逼| 酒色综合网| 裸体美女久久久| 大香蕉伊利av| 男人的天堂啪啪啪啪啪蜜桃不卡| 在线国产探花| 欧美久久伊人| 搞中出久久| 亚州熟女乱伦| 国产精品人妻无码久久久互動交流| 91丨精品丨国产丨丝袜| 天天日美女的B| 九九久久国产精品| 自拍盗摄一区| 神马久久久久眼| 亚洲综合另类| 九九av| 国模精品一区二区三区苹果色戒| 操操操日本的逼| 免费观看网黄| 国产精品无码久久久久2025| 在线观看中文av字幕| 国产精品久久久久久久AV大片| 欧美99999| 9久精品| 清纯唯美第一页| 一二区在线观看视频| 午夜无码熟妇丰满人妻| 亚洲超碰综合网| 99在线观看无大码| 热的中文 热的有码 热的国产| 亚洲吊色| 国产91丝袜在线播放蜜月| 日韩大香蕉精品在线视频| 熟妇人妻一区二区三在线| 秋霞男人网| 色网在线| 日韩本不卡视频在线观看| 国产激情在线| 欧美十八禁视频| 国产成人午夜视频网址| 亚洲av强奸乱伦| 九九视品黄色| 夜夜操中文字幕| 是还免费视频1727我| 天美传媒在线一区| 欧美天天综合| 日韩精品黄片免费观看| 色人久久| 色综合超碰超| 清纯唯美亚洲综合| 成人aⅴ一区二区三区| 欧美十八禁导航成人| 欧亚性爱啪啪| 91网站18在线观看| 天天天堂影视日韩亚洲91| 欧美性五月| 97欧美综合| 成人av性爱电影在线观看| 亚洲精品国产熟女久久久久久| 国产福利影视| 丰满翘臀美女影院视频| 国产性爱欧美性爱在线 | 日韩欧美女求操每天更新| 亚洲欧美不卡线| 日韩三级在线观看网站| 岛国成人av在线播放网址| 欧美九九爱| 91 丝袜在线播放| 色婷婷综合视频| 色呦呦、国产精品| 国产精品不卡av免费在线观看| 日本激情免费大片| 亚洲AO在线| 亚洲图片视频小说| 黑人白女精品一区| 日本精品88888888| 98福利在线视频| 日本不卡在线二区三区| 日本人妻伦在线中文字幕| 伊人久久综合影院| 中文字幕一区二区三区蜜臀| 九九九九免费视频| 日韩免费三级黄片电影| 天综合网| 人人摸人人添人人操 | 超碰97首页| 热思思免费视频| 狠狠干婷婷| 国产一区二区精品在线视频| 免费亚洲黄色视频在线观看| 国产精品2020| 夜草网站| 肉丝网站91| 青草一区二区| 亚洲天堂另类小说男人| 男女猛烈无遮掩视频免费软件| 99精品免费| 欧美综合色综合| 国产曰批免费观看久久久| 国产精品肉丝自拍| 性爱视频无打码在线观看| 91国产丝袜足交精品视频| 欧美日韩狠狠爱| 91精品国产高清久久久久久,亚洲成人 | 农村女一级毛卡片| 96精品久久久久中文字幕| 一本色道久久综合精品婷婷| 日本九九九九| 日韩熟女三十乱伦| 亚洲色图加勒比| 乱欲视频| 97精品第3页| 久久天天艹| 97干天天| 久久精品国产亚洲AV高级北京| 天天天天天超碰| 国产久久免费精品视频| 射丝袜大香蕉| 熟女乱伦二区| 超碰在线一区二区三区| 99久久com免费视频′| 午夜在线播放| 韩国轻伦国内自拍一区| AV一区观看| 中文字幕人乱码中文字的预防方法 | 一区二区 电影 亚洲| 亚洲影院无码在线| 亚洲综合99999| 青青操狠狠撩| 欧美天天综合| 99国产精品免费| 亚洲av无码国产精品字幕| 大香蕉色网| 亚州色交| 国产亚洲精品农村妇女| 亚洲天堂久| 五月天丁香| 操逼视频国产无套| 伊香蕉综合久久久久久久噜噜噜| 亚洲色堂免费视频| 黄色一级视| 免费一二区| 97久久超碰国产网站| 国产一级不卡在线观看| 日本媚薬中文字幕在线| 狠狠热这里都是精品| 极品尤物女神在线观看| 日韩大香蕉| aaa淫乱视频| 亚洲日本韩国在线| ,成人免费啪啪视频| 国语精品av| 在线视频一区二区传媒| 超碰日本97美女人妻人人玩人人爱| 中文字幕AV乱伦| 久久久91福利姬| 女人妻一区| 嫖老熟女A片一二三区| 黄片免费日韩| 九九热九九| 欧洲自拍第一页| 丝袜狠狠草尤物人妻av91| 日韩欧美一级特黄大片| 内射老妇BBWX0C0CK| 精产品久久| 久神马| 国产欧美第五页| 国产三区免费在线观看| 国产在线强奸视频| 女欧美一区二三区| 九热久| 精品中文一区二区| 日韩啪啪啪视频| 丝袜AV一二三区| 自慰白浆在线观看| 五月天婷婷影院| 久久久久国产精品喷潮免费观看臀| 中文字幕蜜乳av| 欧美,日韩,中文,另类| 另类av综合久久| 九九久久国产精品| 亚洲不卡av在线| 2011国产精品| 国产剧情一区在线观看| 色婷婷五月综合| 久久社区一区二区三区| 黑人白女精品一区| 日韩欧美午夜一区二区| 眼镜人妻101.com| 亚洲国产欧美日韩精品一区二区三区,国产一区二区三区在线看片,欧美性猛交 XXX | 欧美99999| 欧美翘臀视频网站一区二区三区| 97色综合中文网| 日本媚薬中文字幕在线| 久久精品久久久久久久| 久九色| 夜夜爽夜夜操| 亚洲av性爱电影| 亚洲无992tv| 久久夜夜| 久草视频观看视频在线| 成人三一级一片aaa| 91在线超高颜值国产| 被男人吃奶很爽的毛片| 超碰人妻天天干| 亚洲日韩美国人妻| 色九九综合| 99无码视频| 情侣开房子拍 日韩无码 女的很漂亮| 日韩人体偷拍| 99re95| 精品成人女人久久| 大香蕉淫人| 2024黄色视频| 欧美精品日韩久久久九| 超碰人妻在线| 玖玖爱一区在线| 人妻激情在线视频| 99久久久无码国产精品性啊聊| 翔田千里A片一区二区| 日本淫乱女一区二区三区视频| 夜夜操美女| 超碰人妻天天干| 9999免费精彩视频| 欧美精品丝袜久久久中文字幕| 超碰性爱97| 91亚洲欧美综合高清在线| 欧美精品系列| 日韩乱伦AⅤ| 狠狠激情综合狠狠操中文字幕| 五月综合视频| 97公开久久| 亚洲色丰满少妇高潮| 色诱中文字幕| 东京热一区二区三区四区五区六区| 久久久久久久 九九九九九九九 | 精品女人999| 啊啊啊好湿久久| 97精选久久| 91丝袜在线观看| 18禁免费视频| 国产在线76页| 后入精品| 97色伦97色伦国产欧美| 国产一区二区精品久久99| 丁香六月综合激情| 久久久成人精品| 亚洲熟女综合一区二区| 丰满人妻一区二区三区| 日韩中文9| 中文字幕日韩专区精品系列| 九九AV| 国产黄色动态精品| 日本黄色大片一级视频免费麻豆| 6080yy午夜理论三级一区二区三区无码| 免费网站观看www在线观| 亚洲中文字幕熟女| 伊人网一本| 久久久久9久久久久| 久久久禁| AV麻豆免费一区| 亚洲啪啪性视频| 一区二区国产视频在线观看| 国产兽交视频在线播放| 日韩欧美麻豆大片| 人妻天堂网| 2024人人操人人摸| 精品无码产区一区二| 亚洲人成网站7777| 欧美专区第一页| 欧美亚州综合网图片| 韩国成人精品久久久免费看| 亚洲AV高潮| 国产1024在线播放| 国产怡红院| 婷婷五月天激情四射| 操人无码| 久久青青草在线视频| av大香蕉| 啪啪视频免费在线观看| 亚洲天堂性爱| 男人女人18禁片免费看网站| 在线视频一区二区传媒| 成人无遮挡毛片免费看| 性爱欧美五月| 大黄片做爱的大的| 亚洲色图 图片| 约操熟妇| 操熟女91| 男人的天堂激情| 丰满美女一级毛片在线播放| 亚洲综合另类欧美久久久| 人妻夜夜爽天天爽三区麻豆AV网站| 97视频900| 377p欧洲日本亚洲大胆| 国产精品色约约| 色9999日韩国产| 无套后入双马尾| 青青11操操操操操操操操| 亚洲九九九| 天天综合网91入口| 亚洲色图亚洲无码强奸乱伦| 福利视频网站| 美女诱惑在线一区| 亚洲少妇中文字幕网址| 免费观看一区| 日韩中文字幕2020| 日本天天操| 国产一区二区免费福利片| 十八禁一区二区无码观看| 97干在线视频| 亚洲高清无码在线桃色| 国产精品自拍视频| 久久久专区| 色情成人五月天| 性色AV网站| 97超碰超欧美。| 69精品人人人人| 日本久久女同性恋视频| 五十路人妻在线| 天天狠| 精品视频免费在线一区| 男人久久天堂| 成人精品水蜜桃久久久久久久| 久久婷婷亚洲| 久久五十路熟女人妻| 1024精品在线| 后入福利视频| 丝袜内射| 后入美女国产| 91精品丝袜在线观看| 色综合国产在线观看| 91色伦| 国产乱弄免费在线视频。 | 人妻久久久久久久久久久久久久久| a片久久久久久久久久久久 | 拍拍拍拍大尺度黄色三级片拍拍拍拍拍照| oumeisetu综合| 视频国产精品未满十八禁止在线观看| 啪啪自拍九九综合| 亚洲熟妇综合久久久久久| 九九九久千久久激情蜜桃在线看| 亚洲经典啪啪| 国产精品一级毛片不卡视| 麻豆美女丝袜人妻中文| 欲色综合| 黄页网站成人免费| 中文字幕免费看| 91九九九小逼| 蜜桃久久久久久久| 中文字幕在线观看AV| www五月| 中文字幕成人理论在线| 亚乱色| 秋霞网—男女啪啪亚洲免费体验区| 婷婷超| 精品亚洲国产成人AV制服丝袜| 国产人妖的免费的视频| 日韩三级在线观看网站| 国产综合色精品在线观看| 粉嫩av一区二区三区天美传媒| 超碰97在线色男人??| 国产精品久久久777| 久久色一区| 九九热精品在线| 九九热精品免费视频| 熟女人妻av在线资源,黄色的资源| 狠狠色婷婷7777久| 天天干天天爽| 伊人991| 3PAV乱伦视频| AAAA级日本片免费视频| 日韩无码人妻| 色九九九九久| 探花精品 一区二区| 超碰97综合在线| 综合网少妇| 男人的天堂VA| 日本操逼无码| 午夜操逼不卡| AV不卡在线| 欧美精品1区2区3区| 精品成人av一区二区三区在线| 国内精品伊人久久久久影院会| 黑人精品成人一区二区三区 | 国产欧美一区激情交| 99色在线视频| 嗯啊不要啊啊在线观看视频| 性爱欧美五月| 操一对老熟妇爽上天视频| 91美女视频在线观看| 狠狠色伊人亚洲综合网站色| 欧美日韩性爱操大逼| 久久怡红院| 无码人妻丰满熟妇奶水区毛片| 亚洲在高跟鞋自慰久久在色线| 亚精品无码毛片一区二区三区| 丝袜天堂网| 色欧美亚洲| 韩国手机不卡无码三级视频| 国产一区二区三区精品观看啪| 好吊妞转入那个网| 日韩精品9999| 精品人妻一区二区三区四区| 日韩福利综合一区| 无码视频黄色网战| 久久9精品视频| 欧美激情精品久久久| 超碰在线91| 秋霞成人一级在线观看| 性色一线| 青青草原香蕉日本Ap| 丰满人妻被猛烈进入中| 最新国产亚洲精品精品国产亚洲综合 | 天天干人妇| 日本不卡卡一区| 国产熟女自拍| 精品高清av中文字幕| 亚欧性爱在线无码| 日本高清熟女久久一区| 91天天| 综合自拍| 色欧洲97| 极品欧美一区二区三区| 乱精品一区字幕二区| 久久精品视| 人妻天天爽天天爽三区| www.yw尤物| 成人熟女视频一区二区三区| 91亚洲欧洲| 九九探花视频在线观看| 国产精品久久久视频| av草草在线电影| 欧 美 自 拍 偷 拍| 成人婷婷丁香| 精品欧美乱码久| 图片区小说区| 日韩乱码Av| 欧美亚洲宗合色性图| 日本三级中国三级99人妇网站| 日曰骚久久精品| 人妻91少妇| 51一区二区三区| 亚洲AO在线| 男人天堂东京热| 超碰这里有精品| 色婷婷五月天| 日本九九久久99| 中文字幕精品免费一区二区| 亚洲黑丝在线| 丝袜足交视频| 超碰亚洲97| 加勒比中文av| 激情自拍 校园春色| 国产精品日日摸天天碰| 香蕉综合网| 懂色AV网| 91色综| 78精品| 欧美在线视频99| 欧美日韩欧美| 偷拍伦理视频| 久久精品国产亚洲AV清纯| 国产久久一区二区午夜| 襙一襙| 婷婷丁香一区二区三区| 免费一级特黄特色大片在线观看看| 欧洲精品一区二区三区| 欧美一级久久久久久久大片动画| 啊啊啊快操我视频| 无码聚合| 国产AV中文| ss久久| 俄罗斯一区二区视频在线观看| 精品97精品97| 欧美大香蕉专区网| 综合亚洲欧美| 久久国产视频专区一二三| 国产精品亚洲色婷婷久久久| 神马影院午夜福利久久久| 加勒比久久综合网高清| 欧美性暴力猛交| 日韩美女久久一区二区三区| av在线观看不卡网站| 四季av一区二区凹凸精品小说| 五月丁香六月激情综合| 国产精品久久久久无码Av网曝门 | 欧美色图人妻| 91 亚洲 欧洲| 九月丁香婷婷色| 在线洲亚线| 嗯嗯啊啊啊好舒服| 黄aaaaaaaaaaaaaaaaaa色网站| 深喉吞精| 不卡一区视频| 97人妻色| 激情五月天社区| 亚洲阿v天堂在线| 91视频综合在线| 91色艳| 91精品啪在线观看国产城中村| 色综合91好| ai欧美亚洲小说| 五月天开心网| 操逼视频亚洲| 高清有码一区二区| 综合自拍| 黑人精品久久97| 夜夜中出国产| 国产精品免费视频不卡| 一级二级三级黑人无码| 欧美美女视频| 人妻人久久精品中文字幕| 久久9 9 9精品| 色九区| 99久久久er直播网址| 天堂无码| juliaann欧美丝袜办公室| 亚洲日韩少妇一道本视频| 又黄又爽在线观看视频| 国产无套粉嫩白浆在| 69少妇一区二区| 亚洲天堂日本| 啊啊啊免费视频| 小草精彩毛片| 九九热在线视频| 欧洲熟妇xxXx欧美老妇裸体| 国产精品久久99日日| 99婷婷一区二区| 亚洲久久久| 蜜臀久久99精品久久久久电影| 91天射| 91麻豆天美传媒HD| 欧美色图片91| 人人爽夜夜操| 很黄很污的免费网站| 亚洲成人av色网| 亚洲精品色| 九九热精品| 久久99久久99久久99人受| 亚洲女毛多水多21P| 手机在线人成免费视频| 色综合久久88色综合久久天天| 亚洲 日本 国产 综合| 色综合国产在线观看| 国产一级舔足在线观看| 97无码视频在线播放| 91欧洲国产成人久久精品网站| 淫荡网址| 日韩精品资源专区二区| 男女日B国产| 一个人免费视频观看在线WWW| AⅤ片水多多| 国产精品永久免费10000| 国产真乱mangent| 天堂俺去俺来也www久久婷婷| 国产人妖的免费的视频| 色综合av男人天堂| 亚洲精品三| 欧美激情综合色综合啪啪五月| 激情五月综合| 欧美综合第一| 9ⅰ久久久天天| 日韩精品三级| 欧美色欧美| 日韩欧美大力操| 亚洲一卡2卡3卡4卡乱码网站| 人人操人人摸人| 五月婷丁香| 欧洲射精91| 成人精品欧洲亚洲| 欧美激情精品| 亚洲啪啪视频免费| 婷婷亚洲五月***久久| 亚洲 综合 欧美| 欧美高潮在线| 东京男人天堂| 岛国在线免费视频| 久久激情综合| 中国少妇啪啪视频| 69av一区二区三区| 色999;丁香五月| 美女久久久久久久| 青草精品视频一日本久久久久网站| 人妻少妇精品久久久久久久| 久草视频在线视频在线视频在线观看| 国产成人网址| 精品九九九九九九九九九| 天天操福利视频综合网站| 亚洲在线网站| 成人电影一区| 啊啊啊啊啊啊啊啊啊啊在线观看| 97超碰欧美精品| 亚州免费啪啪视频| 伊人影院中文字幕| 一区二区无码视频| 亚洲囯产精品女人久久久| 色九九综合| 午夜综合在线| 翔田千里爆乳巨臀无码| 日本三级大片| 在线色资源| 免费啪啪av| 日韩人妻少妇中文字幕| 欧美一区二区| www黄片免费看com| 少妇三P| 欧美999| 久久9视频| 综合久久99亚洲人妻中文在线| 国产极品馒头逼| 亚洲五月婷| 日韩精品影视| 黄色AAAAAAAAAAA大片| 手机不卡视频不卡在线一二三区| 欧美激情精品| 久久婷五月天| 97亚洲综合在线| 婷婷AV一区二区三区| 久久久111| 免费少妇一区二区| 另类av天堂| 欧美成人性爱视频在线播放| 麻豆天美国美国产| 亚洲色图欧美色图另类图片| 淫妻综合网| 超碰97国产欧美| 久久久婷婷婷| 天天干18禁| 少妇超碰在线| 97超碰人妻| 啊啊啊啊啊啊啊国| 日本视频在线中文字幕| 中文字幕日产av人| 日韩啊V| 日韩国产十八禁| 青娱乐老司机视频| 国产精品第二页| 国产一区二区精品久久99| 久久精品国产久精国产| 欧日a| 日天天九九天堂666| 亚洲欧美国产日本一区二区三区| 老熟乱一区二区三区四区| 五月天婷婷久久| 精品久9| 一牛影视久久久一区二区三区| 91亚洲欧美| 欧美少妇第一页| 国产精品亚洲一级av第二区| 好吊爽好吊爽在线视频,中文字幕精品一区二区日本,国产良妇出轨视频在线观看, | 无码免费在线观看黄色片| 国产传媒美日韩av| 黑人操一区二区| 99热精品在线观看| 久久手机好看网站| 国产精品成人久久一区二区三区| 四虎在线播放| 激情久久久| 亚洲国产美女久久久久 | 国产亚洲日韩在线三区黑人| 日韩色图 一区二区| 婷婷色网| 7777奇米影视久久| 亚洲天堂少妇| 91亚洲人| 美欧老女人97| 久久色情| 国产亚洲精品无码三区| 色婷婷日韩精品一区二区三区| 玖玖视频在线资源一区二区三区| 九九视频黄色片| 午夜精品久久久99热蜜桃的功能特点 | 激情图片伦理国产一区二区日韩| 久久无码成人| 欧美 亚洲 第一页| 成人在线午夜视频一区| 欧美亚洲日韩人妻在线观看| 欧美区亚洲区偷拍区| 少妇特黄一区二区三区| 欧美激情视频一区二区三区不卡| 操比国产| 欧美一区二区三区互相| 久热精品在线| 国产美女91视频| 大香蕉手机视频| 日本免费一级AAA大片器| 天天干夜夜鈤| 欲女人妻性色av| 熟妇人妻一区二区三区| 一区二区娱乐网站| 日韩免费三级黄片电影| 精品欧美乱码久| 热久久无毒不卡| 精品国产91久久久久久一区黄无| 亚洲综合色网| 亚洲色图欧美视频| 亚洲有码视频二区| 精品一二三区女同 | 操婢日韩| 99re在线| 东京热,男人的天堂| 噜噜噜亚洲精品| 大香蕉中文aV在线| 日韩另类色图| www.五月天| 欧美强奸一区二区诱惑| 久久久久久久伊人精品| 国产高清亚洲日韩一区| 久久精品区| 久久久精品,3| 久男人久久| 啊啊啊啊啊啊啊网址在线观看| 韩国三级三级BD在线| 亭亭丁香激情| 国产精品九9| 日本熟妇熟色97一本在线观看| 婷婷久草| 丁香五月激情综合| 操一区| 3p国产欧美99热| 国产亚州精品美女久久久免费| 国产一级内射无挡观看| 伊人一区二区在线播放| 操操逼视频| 影视综合无码少妇| 四虎影视永久在线免费| 欧美久久人人网| 人妻人人做人人澡人人爽欧美一区| 素人一区二区三区日韩| 亚洲小电影免费涩涩成人在线高清| 青娱乐福利99| 18啪啪手机免费性爱| 中文字幕人妻资源在线| 国产精品久久久久久久无码AV | 97超碰碰碰| 91 在线亚洲| 91色宗合| 91爱| 人人喜人人妻| 美國A片| 大香蕉之青青草原| 亚洲限制级| 日韩图区| 96精品久久久| 亚洲日韩电影| 乱伦日本中文自拍| 欧美aa一级片| 欧美性爱另类综合| 毛片中心9视频99| 国产丰满少妇久久久精品影院| 1二区9| 色综合 加勒比| 欧美日韩一区二区三区四区蜜桃| 国产性久久久| 亚洲成av人片色午夜乱码| 五月天激情婷婷| 亚熟在线| 人人澡人人澡人人| 综合97| 国产自产自拍| 99无码精品| 久久蜜色情在线视频xxx免费观看| 91欧美性| 熟女人妻精品一区二区视频| 国产高清无码一区三区二区| 超碰99热| 亚洲中文字幕日产无码久久| 五月天精品| 秋霞网无码| 1769精品一区二区三区| 亚洲人精品久久久喷水| 玖玖爱伊人玖玖爱| a级免费在线观看| 粉嫩av在线一区二区| 成年女人一区| 亚洲熟妇AV日韩熟妇在线| 欧美激情久操网| 伊欧美综合视频| 黄色高清久久无码依人| 国产搭汕a级片| 欧美日韩人妻婷婷一区| 免费观看性欧美一级| 精品-91人妻子系列| 色诱avtt| 男人久久天堂| 伦理片秋霞免费影院| 久久综合精品一区二区三区| 欧美自拍网| 美女午夜福利免费视频| 少妇蜜汁| 哈哈操电影| 久久久久成人亚洲国产| 超碰人妻中文在线| 亚洲综合欧美| 久热久| 97在线观看免费| 岛国在线免费视频| 射丝袜高跟鞋99| 精品传媒在线一区| 日韩黄色成人性爱| 男女性扦B| 精品人妻中文字幕4399| 午夜福利久久久噜久噜久久综合 | 91精品国产一区三一| 亚洲精品中文字幕一区在线视频 | 精品一区二区成人| 美女裸体麻豆天美蜜桃91| 亚洲综合999| 五月天激情视频| 小电影欧美91| 全球成人中文在线| 十八禁一区二区无码观看| 日韩性爱1级片视频| 国产白嫩精品久久| 婷婷综合伊人一区| 91亚·色| 91中文字幕| 欧美精品成人亚洲| 综合色好色| 亚洲少妇喷视频看| 九热中文字幕| 五十路人妻在线| 综合久久中文字幕综合日韩精品| 天综合网| 91天天| 中文字幕 av v| 男女无套 免费网站| 碰碰在线视频| 懂色aV一区二区天美传媒| 99热超碰| 人人操人人摸avav| 久久99精品国产| 国产精品久久99日日| 啊啊啊啊好大好硬啊啊啊啊啊| 午夜福利免费福利视频| 超碰9 7女人| 激情五月综合网| 偷拍综合网| 精品一久久久| 国产亚洲精品美女久久久m| 九九九精品色乱九九九| 婷婷五月综合在线| 欧亚日韩一区在线| 啊啊啊97视频| 国产精品自拍欧美在线| 亚洲人妻色图| 91人妻丝袜无码| 涩涩涩综合| 久超碰这里只有精品| 九九热最新| 欧美性爱日韩高清| 亚洲drav色图| 一区二区三区精品黑丝白丝酒店对鸡 | 色欲日韩欧美在线一区| 日本免费二区三区| 97超碰公开| 狠狠中文字幕| 无码丰满熟妇一区二区浪潮AV| 欧美爱国产综合、| 日韩丝袜人妻AV| 少妇高潮对白在线观看| 欧州91高潮| 老鸭窝黄色视频网站| 五月天大香蕉| 欧美日韩啪啪电影| 亚洲日韩97| 青青草视频在线观看一区二区| 人妻日日干| 男女无套 免费网站| 欧美玖玖爱免费玖玖| 96AV精品| 精品性爱一区二区| 富女玩鸭子一级毛片| 羞答答AV中文字| 日韩AV色图| 激情五月综合网| 国产亚洲日韩在线三区黑人| 色五月AV| 人妻少妇无码| 亚洲人妖网| 97精品国产97久久久| 久久香蕉国产线看观看猫咪av| 一区在线精品中文字幕| www久久精品| 超碰这里只有精品| 无码欧美有限公司| 色婷婷香蕉| 亚洲精品人妻在线| 欧美成人免费在线观看| 国产91美女视频| 久久综合久色欧美综合狠狠| 久久视网78| 欧美久久九九| 激情婷婷丁香| 十八禁视频网站| 久久久久久日韩| 亚洲最新Av| 亚洲综合91| 日本精品一区二区不卡| 色九色久| 干美女人妻| 亚欧美综合网。| 少妇69中文| 特级大荫道BBwBBwBBW| 99免费视频| 99精品热| 欧美视频在线视频免费va| 男女激情黄色网址| 久草毛片电影怡| 1禁看欧美黄片免费看| 五月婷婷激情网| 久久香蕉国产线看观看猫咪av| 精品成人动漫一区二区| 国产一区二区三区免费视频在性观看 | 96AV精品| 亚洲91少妇| 国产精品久久久亚洲一区| 男人天堂2019亚洲| 日韩欧美视频青青| 熟女精品一区二区三区| 免费视频无码| 91爽啪| 99热亚洲天堂| 国产精品乱人伊人网| 超碰国产情侣自拍网| 亚洲精品丝袜| 性生活久久久久久久久久| 欧美白嫩女HD| 日韩欧美中文字| 无码操逼天堂| 亚洲熟女乱综合一区二区在线-...亚洲国产日韩欧美一区二区三区,久久久久久精 | 欧美日韩 强奸乱伦| 久久久久九九九| 黄网色一区二区三区四区精品| 亚洲欧美中文日韩视频中国语| 91操操| 日本天天人人狠狠在线日美女 | 无卡一区=区| 99rre在线精品99re8| 色噜噜国产精品视频一区二区| 午夜精品久久一区二区| 午夜福利1区2区3区| 女人被男人桶爽视频网站| 思思热影视| 五月婷丁香| 丰满少妇一区二区三区专区| 97超碰天天爱天天爱| 国产亚洲日本| 97久久超碰日韩精品| 97这里只有精品| 香蕉久久AⅤ...| 插欧洲美女欧美精品| A V少妇特黄三级| 爱啪精品一区| 国产精品另类| 男插女青青影院| 户外裸露刺激视频第一区| 天天色粽合合合合合合合| 99久久综合| 国产夫妻性生活视频| 人人操,人人液| 亚州操逼图| 97人妻色| 97欧美久久久久久久| 天天噜| 老司机老司机午夜影院| A V少妇特黄三级| 人妻内射一区二区在线视频| 色约约一区=区三区| 日本高清免费一本视频在线观看| 一区二区三区精品视频| 嗯嗯嗯不要不要免费视频| 日日日日做夜夜夜夜做无码97| 欧美少妇色图| 手机看片1024你懂的国产| 蜜桃精品一区二区三区ww| 国产日韩精品suv| 人人看人人摸人人色| 男人干美女| 日韩精品-原创伙伴| 岛国视频一二三区| 亚洲骚女一区二区三区| 天天综合站| 亚洲av国产av综合av卡| 欧美夜夜狠| 婷婷九月丁香| 天天做日日做| 午夜福利久久久噜久噜久久综合 | 蜜臀中文字幕| 麻豆黄色五月天| 色偷偷2020免费视频播放| 日韩人妻有码免费视频| 嗯啊免费视频| 欧美少妇高潮| 九月丁香综合网| 天天α片| 中文字幕丰满子伦无码专区在线视频最新| 欧美人妻一区| 久久精品免视看国产成人﹣蜜臀av一区. 久久精品免视看国产成人,蜜臀av一区 | 欧美熟妇精品黑人巨大91| 91人精品妻入口| 在线黄页看毛片| 动漫区日韩区欧美区| 欧美亚洲91| 久久女人视频| WWW啪啪的com| 超碰超碰超碰超碰的大鸡吧操黑丝袜 | 亚洲日韩AV视色| www.超碰在线| 天欧美在线| 国产精品干干干| 少妇一区二区三区在线观看| 9Ⅰ老熟女| 国产999精品久久久久久| 九九操久久国产免费视频| 殴美大黄片| 吊色| 天天日天天干天天整| 91女优在线观看| 最新的亚洲无吗| 啊啊啊啊啊啊啊啊啊在线观看| 四虎国产精品永久地址入口| 操死我了嗯嗯嗯| 日日日日做夜夜夜夜无码| 国产丰满少妇久久久精品影院| 久艾草在线精品视频在线观看| 久久9 9 9精品| 一级性爱视频免费观看| 91日日| 亚洲国产精品有声| 98超碰日本| 干婷婷综合网| 日韩无码第3页| 国产丝袜视频| 免费观看日本操逼视频| 国产夫妻一区二区| 欧美激情性久久久久久| 性性久久| 亚洲欧美日韩精品久久久一区二区| 一区超碰一区| 婷婷五月天激情小说| 人妻夜夜爽天天爽三区麻豆AV网站| 午夜呻吟欧美| 国产一区二区三区视频在线看| 亚洲综合贴图91| 欧美一级黄片免费播放| 亚洲欧美骚| 三级片大波波| 99热99在线播放激情| 99视频自拍区| 97人肏| 色欲av一区二区三区蜜芽| 夜夜免费视频| 六六久久日韩不卡| 亚洲?V无码专区在线电影| 97操综合| 国产一区二区三区中文字幕| 欧美一区二区一级岛国大片| 久久精品高清无码一区| 在线黄页看毛片| 韩国手机不卡无码三级视频| 91激情国产| 99re6国产精品99re在线| 中国zzijzzijzzwww精品| 亚洲天堂另类| 超硑97精品| 亚洲AV成人无码一区二区三区在线观看| 中文 人妻 制服| 人人妻人人色| 成人情色一区二区| 伊人久久综合影院| 网友自拍第1页| 啊好爽快点-国产一区二区三区撒尿在线-成人AV | 亚洲色五月| 国产日韩色综合| 殴美色网| 欧美中字二区| 91久久久久免| 97人人操人人摸人人爱| 一起草高清无码| 青青草华人在线欧美在线| 91欧美偷拍| 色色婷婷五月天| 思思热久久成人| 亚洲一区二区在线观看91| 玖玖大干人妻| 国产精品久久久久久久久久久久久久久久久久 | www.zbzhongsen.com| 激情久久久| 欧美精品日韩久久久九| 国产精品自拍视频| 国产午夜福利合集| 色www精品视频在线观看| 99久久这里只有精品| 乱伦熟女区| 草草影院日本第一页| 中国人高清www色视频免费| 超碰欧美97资源| 啊啊啊不要啊啊受不了了视频在线 | AV不卡在线| 91伊人久| 97超碰人妻| 99re黄 | 久久香蕉综合一本到3atv| 日韩高清黄片| 男女啪啪啪18禁网站| 超碰在线一区| 精品免费囯产一区二区三区| 久久久久人| 中文字幕乱偷人妻久久艾草网| 99www.bibizy香蕉资源国产一区二区三区高清 | 国产传媒午夜理伦精品| 97色碰| 狠狠干91| 中文字幕在线观| 免费视频97| 男人的天堂va在线| 欧美美女视频| 国产精品久久久久婷婷二区次| 97超级久久| 欧洲亚洲人妻无码高清久久三区四区| 欧美最大综合网| 亚洲熟妇综合久久久久久| 91精产一区二区三区| 天天天天天超碰| 亚洲激情天堂网| 亚av顶级裸体一区二区三区四区五区 | 伊人在线大香蕉视频久久| 国产一区二区在线播放,久久亚洲精品中文字幕第一区,亚洲精品在线中文字幕视频 | 久久天天躁日日躁狠狠躁| 内射中出日韩在线观看视频| 日韩美女久久一区二区三区| 清清一区二区三区四区不卡视频| 91原创在线观看| 高清不卡视频| 校园春色综合色| 伊人国产视频| 操淫穴亚洲五月丁香 | 搡老女人老91妇女老熟女| 大香蕉一级黄色片久久| 久久久性| 天天做日日做| 全球成人中文在线|