تصف هذه المقالة طريقة الحصول على المسار المطلق لملف بواسطة Java. شاركه للرجوع إليه. طريقة التنفيذ المحددة هي كما يلي:
انسخ الرمز كما يلي:/**
* احصل على المسار المطلق حيث يوجد ملف الفصل للفصل. يمكن أن تكون هذه الفئة فئة JDK الخاصة أو فئة معرفة من قبل المستخدم أو فئة في حزمة تطوير طرف ثالث.
* طالما أنه فئة يمكن تحميلها في هذا البرنامج ، يمكن تحديد موقعها على المسار المطلق لملف الفئة الخاص به.
*
* param CLS
* سمة فئة لكائن
* @إعادة المسار المطلق إلى موقع ملف الفئة لهذه الفئة. إذا لم يكن هناك تعريف لهذه الفئة ، يتم إرجاع NULL.
*/
سلسلة خاصة getPathFromClass (Class CLS) يلقي ioException {
مسار السلسلة = فارغ ؛
if (cls == null) {
رمي nullpointerxception () جديدة ؛
}
url url = getClassLocationurl (CLS) ؛
if (url! = null) {
path = url.getPath () ؛
if ("jar" .equalsignorecase (url.getProtocol ())) {
يحاول {
path = url جديد (path) .getPath () ؛
}
catch (مشوه e) {
}
int location = path.indexof ("!/") ؛
إذا (الموقع! = -1) {
path = path.substring (0 ، الموقع) ؛
}
}
ملف ملف = ملف جديد (path.replaceall ("٪ 20" ، "")) ؛
path = file.getCanonicalPath () ؛
}
مسار العودة
}
/**
* احصل على عنوان URL لموقع ملف الفصل. هذه الطريقة هي الطريقة الأساسية لهذه الفئة وهي للطرق الأخرى للاتصال.
*/
URL الخاص getClassLocationurl (CLS الفئة النهائية) {
if (cls == null) {
رمي جديد غير unalfalArgumentException ("الفئة التي هي الإدخال خالية") ؛
}
نتيجة عنوان URL = فارغة ؛
السلسلة النهائية clsasresource = cls.getName (). استبدال ('.' ، '/').concat(".class ") ؛
protectomain النهائي pd = cls.getProtectionDomain () ؛
if (pd! = null) {
CODESORCE CS = pd.getCodesource () ؛
if (cs! = null) {
النتيجة = cs.getLocation () ؛
}
إذا (النتيجة! = فارغة) {
if ("file" .equals (result.getProtocol ())) {
يحاول {
if (result.toexternalform (). endswith (".
النتيجة = عنوان URL جديد ("جرة:". concat (result.toexternalform ()). concat ("!/"). concat (clsasresource)) ؛
}
آخر if (ملف جديد (result.getFile ()). isDirectory ()) {
النتيجة = عنوان URL جديد (النتيجة ، clsasresource) ؛
}
}
catch (تجاهل مشوه) {
}
}
}
}
if (النتيجة == null) {
clsloader النهائي clsloader = cls.getClassLoader () ؛
النتيجة = clsloader! = null؟
}
نتيجة العودة
}
آمل أن يكون هذا المقال مفيدًا لبرمجة Java للجميع.