كيف يمكنني الحصول على قائمة من تبعيات فئة جافا لفئة الرئيسية؟

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

سؤال

هل هناك طريقة للعثور على كافة التبعيات فئة من فئة الرئيسية جافا؟

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

وأنا بحاجة إلى شيء من شأنها أن تجد تبعيات متكرر (ربما لعمق المعرفة).

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

المحلول

ويمكن ان يتم ذلك eaily مع javac عادل. حذف الملفات صفك ومن ثم ترجمة الفئة الرئيسية. سوف javac تجميع متكرر أي الطبقات التي يحتاجها (بشرط أن لا تخفي حزمة خاصة الطبقات / واجهات في الملفات المسماة الغريب). بالطبع، هذا لا يغطي أي الخارقة متكررة.

نصائح أخرى

وأنا فقط وجدت الدرجة التبعية محلل ، تحميل، تثبيت تكوين وبعد مرور 10 دقيقة ولدي كامل قائمة التبعية الصف.

فكرة IntelliJ لديك أنيق <لأ href = "HTTP: / /www.jetbrains.com/idea/features/dependency_analysis.html "يختلط =" نوفولو noreferrer "> هيكل تبعية المصفوفة . يمكنك استكشاف package- وعلى مستوى الدرجة تبعيات تماما. إذا كنت ترغب في ذلك أكثر بساطة، لديك والمشاهد التبعية أيضا، ولكن htere يمكنك فقط مشاهدة تبعيات من الدرجة الأولى.

وقد تحتاج إلى إلقاء نظرة على أداة سطر الأوامر jdeps:

https://docs.oracle.com /javase/8/docs/technotes/tools/unix/jdeps.html

jdeps -cp <your cp> -v <path to your .class file>

والأمر سيعود قائمة التبعيات لهذا الملف فئة جافا. هناك العديد من الخيارات الأخرى التي يمكن استخدامها في الأمر الخاص مثل -regex للعثور على تبعيات مطابقة نمط معين

وهنا هو المقتطف الذي يمكن وضعه في الأسلوب الرئيسي الخاص بك في جاوة إلى مسارات الإخراج إلى كافة التبعيات من التطبيق الخاص بك:

ClassLoader cl = ClassLoader.getSystemClassLoader();
URL[] urls = ((URLClassLoader) cl).getURLs();
for(URL url: urls){
    System.out.println(url.getPath());
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top