javah(1) Basic Tools javah(1)

javah - تولید فایل‌های سرآیند و منبع C از یک کلاس Java.

javah [ options ] fully-qualified-class-name ...
گزینه‌های خط فرمان. بخش «گزینه‌ها» را ببینید.
مکان یا نام کاملاً مشخص (fully qualified) کلاس‌هایی که باید به فایل‌های سرآیند و منبع C تبدیل شوند.

دستور javah فایل‌های سرآیند و منبع C را که برای پیاده‌سازی متدهای بومی (native methods) مورد نیاز هستند، تولید می‌کند. فایل‌های سرآیند و منبع تولیدشده توسط برنامه‌های C برای ارجاع به متغیرهای نمونهٔ (instance variables) یک شیء از درون کد منبع بومی استفاده می‌شوند. فایل .h شامل تعریف یک struct با چیدمانی هم‌تراز با چیدمان کلاس متناظر است. فیلدهای درون struct با متغیرهای نمونه در کلاس مطابقت دارند.

نام فایل سرآیند و ساختار تعریف‌شده در آن، از نام کلاس مشتق می‌شوند. هنگامی که کلاس ارائه‌شده به دستور javah درون یک بسته (package) قرار داشته باشد، نام بسته به ابتدای نام فایل سرآیند و نام ساختار اضافه می‌شود. از خط زیر (_) به عنوان جداکننده نام استفاده می‌شود.

به‌طور پیش‌فرض، دستور javah برای هر کلاس فهرست‌شده در خط فرمان یک فایل سرآیند ایجاد کرده و فایل‌ها را در دایرکتوری جاری قرار می‌دهد. برای ایجاد فایل‌های منبع از گزینهٔ -stubs استفاده کنید. برای الحاق نتایج تمام کلاس‌های فهرست‌شده در یک فایل واحد، از گزینهٔ -o استفاده نمایید.

رابط بومی جاوا (JNI) به اطلاعات سرآیند یا فایل‌های stub نیازی ندارد. با این حال همچنان می‌توان از دستور javah برای تولید پیش‌نمونه‌های توابع متد بومی (function prototypes) مورد نیاز برای متدهای بومی به سبک JNI استفاده کرد. دستور javah به‌طور پیش‌فرض خروجی به سبک JNI تولید می‌کند و نتیجه را در فایل .h قرار می‌دهد.


فایل‌های سرآیند یا منبع حاصل از تمام کلاس‌های مشخص‌شده در خط فرمان را درون یک فایل خروجی الحاق می‌کند. تنها یکی از گزینه‌های -o یا -d می‌تواند استفاده شود.

دایرکتوری ذخیره‌سازی فایل‌های سرآیند یا فایل‌های stub توسط دستور javah را تعیین می‌کند. تنها یکی از گزینه‌های -d یا -o می‌تواند استفاده شود.

باعث می‌شود دستور javah اعلانات C را از فایل شیء جاوا تولید کند.

بیانگر خروجی پرگو (verbose) است و باعث می‌شود دستور javah پیامی درباره وضعیت فایل‌های تولیدشده در stdout چاپ کند.

پیام راهنمایی برای نحوه استفاده از javah را چاپ می‌کند.

اطلاعات انتشار دستور javah را چاپ می‌کند.

باعث می‌شود دستور javah یک فایل خروجی حاوی پیش‌نمونه‌های توابع متد بومی به سبک JNI بسازد. این حالت خروجی پیش‌فرض است؛ استفاده از -jni اختیاری است.

مسیری را مشخص می‌کند که دستور javah برای جستجوی کلاس‌ها از آن استفاده می‌کند. در صورت تنظیم بودن، پیش‌فرض یا متغیر محیطی CLASSPATH را لغو می‌کند. دایرکتوری‌ها در Oracle Solaris با دو‌نقطه (:) و در Windows با نقطه‌ویرگول (;) از یکدیگر جدا می‌شوند. قالب کلی مسیر عبارت است از:

Oracle Solaris:

.:your-path

مثال: .:/home/avh/classes:/usr/local/java/classes

Windows:

.;your-path

مثال: .;C:\users\dac\classes;C:\tools\java\classes

به عنوان یک سهولت ویژه، عنصری از مسیر کلاس که نام پایهٔ آن * باشد، معادل مشخص کردن فهرستی از تمام فایل‌های موجود در آن دایرکتوری با پسوند .jar یا .JAR در نظر گرفته می‌شود.

برای مثال، اگر دایرکتوری mydir شامل فایل‌های a.jar و b.JAR باشد، آن‌گاه عنصر مسیر کلاس mydir/* به A.jar:b.JAR بسط می‌یابد، به جز اینکه ترتیب فایل‌های jar نامشخص است. تمام فایل‌های JAR در دایرکتوری مشخص‌شده، از جمله فایل‌های پنهان، در این فهرست قرار می‌گیرند. یک مدخل مسیر کلاس که متشکل از * باشد، به فهرستی از تمام فایل‌های JAR در دایرکتوری جاری بسط می‌یابد. متغیر محیطی CLASSPATH نیز در صورت تعریف شدن به همین صورت بسط داده می‌شود. هرگونه بسط نویسه عام (wildcard) در مسیر کلاس، پیش از راه‌اندازی ماشین مجازی جاوا (JVM) انجام می‌شود. یک برنامه جاوا هرگز نویسه‌های عام بسط‌نیافته را نخواهد دید مگر با استعلام از متغیر محیطی؛ برای مثال از طریق فراخوانی System.getenv("CLASSPATH").


مسیری را مشخص می‌کند که کلاس‌های راه‌انداز (bootstrap classes) از آن بارگذاری می‌شوند. به‌طور پیش‌فرض، کلاس‌های راه‌انداز همان کلاس‌های پیاده‌سازی‌کنندهٔ پلتفرم اصلی جاوا هستند که در jre\lib\rt.jar و چندین فایل JAR دیگر قرار دارند.

مشخص می‌کند که فایل‌های سرآیند قدیمی به سبک JDK 1.0 باید تولید شوند.

مشخص می‌کند که فایل‌های خروجی باید همواره نوشته شوند.

گزینهٔ option را به ماشین مجازی جاوا ارسال می‌کند، که در آن option یکی از گزینه‌های شرح داده‌شده در صفحهٔ مرجع اجراکنندهٔ برنامه جاوا است. برای مثال، -J-Xms48m حافظه راه‌اندازی را روی ۴۸ مگابایت تنظیم می‌کند. به java(1) مراجعه کنید.

•
javah(1)
•
java(1)
•
jdb(1)
•
javap(1)
•
javadoc(1)
21 November 2013 JDK 8