إنشاء كائن BCEL JavaClass من ملف. الطبقة التعسفي

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

  •  03-07-2019
  •  | 
  •  

سؤال

وأنا حول اللعب مع BCEL. أنا لا تستخدم لتوليد بايت كود، ولكن بدلا من ذلك أنا أحاول أن تفقد هيكل الطبقات جمعت القائمة.

وأنا بحاجة إلى أن تكون قادرة على إشارة إلى ملف. الطبقة التعسفي في أي مكان على القرص الصلب وتحميل <لأ href = "http://jakarta.apache.org/bcel/apidocs/org/apache/bcel/classfile /JavaClass.html "يختلط =" نوفولو noreferrer "> الكائن JavaClass بناء على ذلك. ومن الناحية المثالية أود أن تجنب الاضطرار إلى إضافة فئة معينة لبلدي CLASSPATH.

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

المحلول

والطريقة واضحة تتمثل في إنشاء ClassParser مع اسم الملف وندعو تحليل (). بدلا من ذلك يمكنك استخدام SyntheticRepository وتوفير CLASSPATH (وهذا ليس CLASSPATH الخاص بك، IYSWIM).

نصائح أخرى

وو. الطبقة الحالية يمكن أن يكون من الدرجة تحميلها إلى كائن جافا انج الصف. ومن ثم يمكن تحويلها إلى BCEL هيكل javaclass المتوسط. التعليمة البرمجية التالية قد تساعد: -

Class<?> javaClass1 = null;
javaClass1 = ucl.loadClass("com.sample.Customer");
org.apache.bcel.classfile.JavaClass javaClazz1=org.apache.bcel.Repository.lookupClass(javaClass1);
new ClassParser(classfilebytearrayhere).parse()
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top