.\" Automatically generated by Pandoc 3.10.2 .\" .TH "JNATIVESCAN" "1" "2026" "JDK 26.0.2.1" "JDK Commands" .SH "نام (NAME)" jnativescan \- پویشگر کدهای بومی و کتابخانه‌های نیتیو در جاوا (نسخه ۲۶) .SH "خلاصه دستور (SYNOPSIS)" \f[CR]jnativescan\f[R] [\f[I]گزینه‌ها\f[R]] .TP \f[I]گزینه‌ها\f[R] بخش \f[B]گزینه‌ها (OPTIONS)\f[R] را ببینید. .SH "توضیحات (DESCRIPTION)" ابزار \f[CR]jnativescan\f[R] یک ابزار تحلیل ایستا است که توسط JDK ارائه شده و یک یا چند فایل JAR را برای یافتن موارد استفاده از قابلیت‌های بومی (native)، مانند فراخوانی متدهای محدودشده یا اعلان متدهای \f[CR]native\f[R]، پویش می‌کند. .PP دستور \f[CR]jnativescan\f[R] پیکربندی مسیر کلاس (class path) و مسیر ماژول (module path) زمان اجرا، و همچنین مجموعه‌ای از ماژول‌های ریشه و یک نسخه انتشار هدف را می‌پذیرد. این ابزار فایل‌های jar موجود در مسیرهای کلاس و ماژول را پویش کرده و استفاده از قابلیت‌های بومی را یا در یک ساختار درختی (که کلاس‌ها و متدهای فراخواننده را نیز مشخص می‌کند) و یا در صورت تعیین فلگ \f[CR]\-\-print\-native\-access\f[R] به صورت فهرستی از نام‌های ماژول‌ها گزارش می‌دهد. .SH "گزینه‌ها (OPTIONS)" گزینه‌های زیر در دسترس هستند: .TP \f[CR]\-\-class\-path\f[R] \f[I]path\f[R] برای تعیین فهرستی از مسیرهای اشاره‌کننده به فایل‌های jar جهت پویش استفاده می‌شود. .PP تمامی فایل‌های jar مشخص‌شده از طریق این فهرست پویش خواهند شد. اگر یک فایل jar حاوی ویژگی \f[CR]Class\-Path\f[R] در مانیفست خود باشد، فایل‌های jar فهرست‌شده در آن نیز پویش خواهند شد. فایل‌های jar ذکرشده در ویژگی مانیفست \f[CR]Class\-Path\f[R] که یافت نشوند، نادیده گرفته می‌شوند. با تمام فایل‌های jar یافت‌شده طوری رفتار می‌شود که گویی متعلق به ماژول بدون نام (unnamed module) هستند. .TP \f[CR]\-\-module\-path\f[R] \f[I]path\f[R] برای تعیین فهرستی از مسیرهای اشاره‌کننده به فایل‌های jar یا دایرکتوری‌های حاوی فایل‌های jar که ابزار می‌تواند برای یافتن ماژول‌های نیازمند پویش از آن‌ها استفاده کند، به کار می‌رود. فهرست فایل‌های jar که پویش خواهند شد به گزینه \f[CR]\-\-add\-modules\f[R] بستگی دارد. .RS برای هر دو گزینه \f[CR]\-\-class\-path\f[R] و \f[CR]\-\-module\-path\f[R]، مقدار \f[I]path\f[R] باید یک مسیر جستجو متشکل از یک یا چند فایل jar باشد که با جداکننده مسیر مخصوص سیستم‌عامل از یکدیگر جدا شده‌اند. برای مثال: .IP \(bu 2 \f[B]لینوکس و مک‌او‌اس (macOS):\f[R] .RS 2 .RS .PP \f[CR]\-\-class\-path /some/foo.jar:/another/different/bar.jar\f[R] .RE .RE \f[B]نکته:\f[R] در ویندوز، از نقطه\-ویرگول (\f[CR];\f[R]) به عنوان جداکننده به جای دو نقطه (\f[CR]:\f[R]) استفاده کنید. .IP \(bu 2 \f[B]ویندوز:\f[R] .RS 2 .RS .PP \f[CR]\-\-class\-path C:\(rssome\(rsfoo.jar;C:\(rsanother\(rsdifferent\(rsbar.jar\f[R] .RE .RE .RE .TP \f[CR]\-\-add\-modules\f[R] \f[I]module[,module...]\f[R] برای تعیین فهرستی از نام‌های ماژول‌ها که با کاما از هم جدا شده‌اند استفاده می‌شود و ماژول‌های ریشه را جهت پویش مشخص می‌کند. تمامی ماژول‌های ریشه و همچنین هر ماژولی که به آن‌ها وابسته باشند پویش خواهند شد. این شامل وابستگی‌ها به پیاده‌سازی‌های سرویس مشخص‌شده از طریق دستورالعمل \f[CR]uses\f[R] در فایل \f[CR]module\-info\f[R] یک ماژول نیز می‌شود. تمام ماژول‌های یافت‌شده در مسیر ماژول که پیاده‌سازی چنین سرویسی را ارائه می‌دهند نیز پویش خواهند شد. .TP \f[CR]\-\-release\f[R] \f[I]version\f[R] برای تعیین نسخه Java SE که مجموعه متدهای محدودشده جهت پویش را مشخص می‌کند، استفاده می‌شود. برای فایل‌های jar چندنسخه‌ای (multi-release)، این گزینه همچنین نسخه فایل کلاسی را که باید از jar بارگذاری شود مشخص می‌کند. این گزینه باید روی نسخه زمان اجرایی تنظیم شود که برنامه در نهایت قرار است تحت آن اجرا گردد. اگر این فلگ حذف شود، نسخه \f[CR]jnativescan\f[R] به عنوان نسخه انتشار استفاده می‌شود که همان نسخه JDK متعلق به ابزار است. .TP \f[CR]\-\-print\-native\-access\f[R] به جای ساختار درختی پیش‌فرض، فهرستی از نام‌های ماژول‌هایی را که از قابلیت‌های بومی استفاده می‌کنند و با کاما از هم جدا شده‌اند چاپ می‌کند. .TP \f[CR]\-\-help\f[R] یا \f[CR]\-h\f[R] پیام راهنمای کامل را نمایش می‌دهد. .TP \f[CR]\-\-version\f[R] رشته کوتاه نسخه ابزار را چاپ می‌کند. .SH "مثال‌ها (EXAMPLES)" دستور \f[CR]jnativescan\f[R] پیکربندی زمان اجرا را در قالب مسیر کلاس، مسیر ماژول، مجموعه‌ای از ماژول‌های ریشه و نسخه انتشار هدف می‌پذیرد. برای مسیر کلاس، ابزار تمامی فایل‌های jar را پویش می‌کند، از جمله فایل‌هایی که به صورت بازگشتی از طریق ویژگی مانیفست \f[CR]Class\-Path\f[R] یافت می‌شوند. برای مسیر ماژول، ابزار تمامی ماژول‌های ریشه مشخص‌شده با \f[CR]\-\-add\-modules\f[R] و هرگونه وابستگی (تعدی‌پذیر) ماژول‌های ریشه را پویش می‌کند، از جمله ماژول‌هایی که شامل پیاده‌سازی‌های سرویس استفاده‌شده توسط یک ماژول پویش‌شده باشند. .PP به طور پیش‌فرض، ابزار فایل‌های jar، کلاس‌ها و متدهایی را که از قابلیت‌های بومی استفاده می‌کنند در یک ساختار درختی چاپ می‌کند. در ادامه یک نمونه خروجی آورده شده است: .IP .EX $ jnativescan \-\-class\-path app.jar app.jar (ALL\-UNNAMED): foo.Main: foo.Main::main(String[])void references restricted methods: java.lang.foreign.MemorySegment::reinterpret(long)MemorySegment foo.Main::nativeMethod()void is a native method declaration .EE .PP عبارت \f[CR]app.jar (ALL\-UNNAMED)\f[R] مسیر فایل jar است که نام ماژول داخل پرانتز در پشت آن قرار دارد. از آنجا که در این مورد فایل jar در مسیر کلاس قرار دارد، عبارت \f[CR]ALL\-UNNAMED\f[R] برای نشان دادن ماژول بدون نام چاپ شده است. خط دوم خروجی، یعنی \f[CR]foo.Main\f[R]، نشان می‌دهد که متدهایی با استفاده از قابلیت‌های بومی در کلاس \f[CR]foo.Main\f[R] یافت شده‌اند. خط بعدی: .IP .EX foo.Main::main(String[])void references restricted methods: .EE .PP نشان می‌دهد که متد \f[CR]main(String[])\f[R] در کلاس \f[CR]foo.Main\f[R] به یک متد محدودشده ارجاع می‌دهد، که در خط بعدی به صورت زیر فهرست شده است: .IP .EX java.lang.foreign.MemorySegment::reinterpret(long)MemorySegment .EE .PP در نهایت، متن: .IP .EX foo.Main::nativeMethod()void is a native method declaration .EE .PP نشان می‌دهد که کلاس \f[CR]foo.Main\f[R] شامل یک اعلان متد \f[CR]native\f[R] به نام \f[CR]nativeMethod\f[R] است. .PP اگر گزینه \f[CR]\-\-print\-native\-access\f[R] را به خط فرمان مثال اضافه کنیم، در عوض فهرستی از نام‌های ماژول‌هایی دریافت می‌کنیم که حاوی دسترسی به قابلیت‌های بومی هستند: .IP .EX $ jnativescan \-\-class\-path app.jar \-\-print\-native\-access ALL\-UNNAMED .EE .PP در این حالت خروجی تنها شامل \f[CR]ALL\-UNNAMED\f[R] است که نشان می‌دهد یک فایل jar در مسیر کلاس، یعنی در ماژول بدون نام، حاوی دسترسی به قابلیت‌های بومی است.