الحصول على المسار النسبي
ملاحظة: يمكن الحصول على المسارات النسبية (أي دون تحديد من ترتبط به في ذلك الوقت) بالطرق التالية (سواء كان مشروع جافا عام أو مشروع ويب)
String نسبياPath=System.getProperty("user.dir");
في المسار النسبي أعلاه، تكون الملفات الموجودة في مشروع Java مرتبطة بالدليل الجذر للمشروع
يختلف مسار الملف في مشروع الويب وفقًا لخوادم الويب المختلفة (يرتبط Tomcat بدليل تثبيت Tomcatbin)
الحصول على دليل تحميل الفئة الثانية (أي الحصول على دليل تحميل فئة معينة عند التشغيل)
1.1) الطريقة العامة الأولى (سواء كان مشروع جافا عام أو مشروع ويب، حدد أولاً موقع دليل المستوى الأول حيث يمكنك رؤية مسار الحزمة)
InputStream is=TestAction.class.getClassLoader().getResourceAsStream("test.txt");
(مسار ملف test.txt هو اسم المشروعsrctest.txt؛ دليل المستوى الأول للحزمة حيث توجد فئة TestAction موجود ضمن دليل src)
في الصيغة أعلاه، ما عليك سوى استبدال TestAction وtest.txt باسم الفئة واسم الملف المطابقين.
1.2) الطريقة العامة الثانية (هذه الطريقة مشابهة للطريقة الموجودة في 1.1، باستثناء أن هذه الطريقة يجب أن تبدأ بـ '/')
InputStream is=Test1.class.getResourceAsStream("/test.txt");
(مسار ملف test.txt هو اسم المشروعsrctest.txt، ودليل المستوى الأول للحزمة حيث توجد الفئة Test1 موجود ضمن دليل src)
الحصول على الدليل الجذري لمشاريع الويب الثلاثة (بعد الإصدار)
1 بدءًا من servlet
يمكنك إنشاء servlet وكتابة العبارة التالية في أسلوب init الخاص به
ServletContext s1=this.getServletContext();
String temp=s1.getRealPath("/");
تبدو النتيجة كما يلي: D:ToolsTomcat-6.0webapps 02_ext (002_ext هو اسم المشروع)
إذا تم استدعاء s1.getRealPath("")، فسيكون الإخراج هو D:ToolsTomcat-6.0webapps 02_ext (واحد أقل "")
2 بدءًا من httpServletRequest
String cp11111=request.getSession().getServletContext().getRealPath("/");
تبدو النتيجة كما يلي: D:ToolsTomcat-6.0webapps 02_ext
الحصول على مسار الفصل الرابع (في Eclipse، الحصول على المسار إلى دليل src أو دليل الفئات)
الطريقة الأولى Thread.currentThread().getContextClassLoader().getResource("").getPath()
على سبيل المثال: String t=Thread.currentThread().getContextClassLoader().getResource("").getPath();
System.out.println("t---"+t);
الإخراج:t---/E:/order/002_ext/WebRoot/WEB-INF/classes/
الطريقة الثانية JdomParse.class.getClassLoader().getResource("").getPath() (JdomParse هي فئة في حزمة معينة من src، كما هو موضح أدناه)
على سبيل المثال:String p1=JdomParse.class.getClassLoader().getResource("").getPath();
System.out.println("JdomParse.class.getClassLoader().getResource--"+p1);
الإخراج: JdomParse.class.getClassLoader().getResource--/E:/order/002_ext/WebRoot/WEB-INF/classes/
بالإضافة إلى ذلك، إذا كنت تريد وضع الملف في حزمة معينة، فيمكنك الحصول على الملف بالطريقة التالية (حدد أولاً دليل المستوى الأخير للحزمة)
على سبيل المثال String p2=JdomParse.class.getResource("").getPath();
System.out.println("JdomParse.class.getResource---"+p2);
الإخراج: JdomParse.class.getResource---/E:/order/002_ext/WebRoot/WEB-INF/classes/jdom/ (JdomParse هي الفئة الموجودة في حزمة jdom في دليل src)