أداة للتحقق من اسم الحزمة واسم فئة الفئة داخل ملف .class

StackOverflow https://stackoverflow.com/questions/3923799

  •  29-09-2019
  •  | 
  •  

سؤال

هل هناك بعض الأدوات أو التقنية للسماح لي بالاستعلام عن محتويات ملف Java .class؟ أريد أن أعرف الاسم المؤهل بالكامل للفصل والطريقة التي يحددها. اعتقدت ذلك ربما javap يمكن أن تساعدني في هذا ولكن لا يمكنني معرفة كيف.

هل كانت مفيدة؟

المحلول

هل الفئة الموجودة في ملف .class دائمًا مثل اسم الملف (باستثناء .class)

في الممارسة العملية ، نعم. يعتمد كل تطبيق Java الذي واجهته على أسماء مسارات ملف الفصل لتحديد فئات ليتم تحميلها ، إلخ.

من الناحية النظرية ، فئة التحميل استطاع استخدم بعض الآلية الأخرى ، وبالتالي استطاع تخزين فصول في الملفات التي لا تتعلق بأسماء الفصول. ومع ذلك ، لا أرى أي ميزة في القيام بذلك.

حتى لو استخدمت لغة أخرى مثل Groovy أو Jython أو Scala؟

بالنظر إلى أن هذه اللغات تتجمع إلى ملفات Bytecode التي يتم تحميلها بعد ذلك بواسطة اللوادر الفئة القياسية ، فمن المعطى إلى حد كبير أن أسماء الفصول في ملفات Bytecode تتوافق مع أسماء المسارات حدد موقع ملفات الفصل. ومع ذلك ، فإن هذا لا يعني بالضرورة أن أسماء الفصول في ملفات Bytecode متطابقة مع Scala / Jython / Groovy المعرفات المستخدمة في الكود المصدري. في الواقع ، هذا ليس صحيحًا بالنسبة لجافا ؛ على سبيل المثال ، أسماء الفصل للفئات المجهولة والداخلية ليس مثل المعرفات في رمز مصدر Java.

نصائح أخرى

مكالمة javap ClassName (ليس javap ClassName.class).

إذا كان لديك .class فقط ل javap ClassName
إذا كان لديك .class في مجلد فرعي javap path/to/ClassName أو javap path.to.ClassName


موارد :

جرب هذا Java Decompiler. يجب أن تعطيك المعلومات التي تريدها.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top