كيف يمكنني الحصول على قائمة من تبعيات فئة جافا لفئة الرئيسية؟
-
03-07-2019 - |
سؤال
هل هناك طريقة للعثور على كافة التبعيات فئة من فئة الرئيسية جافا؟
ولقد تم غربلة يدويا من خلال واردات الطبقة الرئيسية وانها واردات ولكن بعد ذلك أدركت أن، لأن المرء لا يحتاج إلى استيراد الطبقات التي هي في نفس الحزمة، كنت أضع معا قائمة غير كاملة.
وأنا بحاجة إلى شيء من شأنها أن تجد تبعيات متكرر (ربما لعمق المعرفة).
المحلول
ويمكن ان يتم ذلك 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());
}