سؤال

لدي مجلد يسمى وغيرها التي لديه صورة كنت ترغب في استخدام في آخر الملف في نفس المجلد ، Example.java.لذلك يجب الخ\صورة.png Etc\Example.java.لقد حاولت استخدام "الخ/صورة.png" كما مسار الصورة, ولكن ذلك لم ينجح.كيف ينبغي أن تذهب عن هذا ؟

كما افترض كانت الملفات في مجموعات مختلفة ، كيف لي أن أفعل ذلك ؟

بلدي الرئيسية .فئات java في حزمة تسمى الرئيسية للعلم.

تحرير:

أنا استخدم هذا:

ClassLoader.getSystemClassLoader().getResource("الخ\صورة.png");

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

المحلول

يمكنك استخدام Class.getResource(), والذي يستخدم عربة الدرجة للحصول على عنوان URL إلى الموارد.على سبيل المثال:

import java.net.URL;
import javax.swing.ImageIcon;

public class Example {

    public ImageIcon getImage() {
        URL url = Example.class.getResource( "image.png" );
        if( url != null ) {
            return new ImageIcon( url );
        }
        return null; // TODO: Better error handling
    }

}

الجزء المهم ، Example.class.getResource( "image.png" ) - صورة المسار المحدد نسبة إلى اسمه الطبقة ؛ في هذه الحالة فهو في نفس الدليل كـ ملف فئة.يمكنك أيضا استخدام هذا الخط في أي فئة أخرى ، وترك إشارة إلى Example.class سليمة.

نصائح أخرى

أول الأشياء أولا.

هو الخ طرد ؟ وبعبارة أخرى في الجزء العلوي من المثال الخاص بك ملف لديك

حزمة وما إلى ذلك ؛

???

عادة حزمة أسماء أقل من الحالة التي هو السبب في أنني أطلب.

ثانيا ، على الرغم من أنه يمكنك استخدام المسارات النسبية للوصول إلى الموارد أنصح دائما باستخدام مسارات مطلقة.

لذلك

URL url = مثال.فئة.getResource("/Etc/صورة.png");

إذا الخ هو مجموعة, وإلا

URL url = مثال.فئة.getResource("/صورة.png");

إذا لم يكن.

أن العمل يجب أن يكون الدليل فيها وما هو في classpath.إذا كان داخل الجرة, أنا لا أتذكر إذا .يعمل classpath إذا لم يكن إضافة إلخ classpath ، مرجع الصورة دون classpath ، أو وضع الخ في دليل فرعي.ووضع هذا الدليل الفرعي في الصف المسار.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top