تضمين الموارد (الصور ، البتات الصوتية ، إلخ) في مشروع Java ثم استخدم هذه الموارد

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

سؤال

لقد بحثت عن طريقة لتضمين مورد في مشروع Java (باستخدام Eclipse v3.6.0) ثم باستخدام هذا المورد المضمن ضمن عنصر تحكم (على سبيل المثال ، JLabel). لقد رأيت أساليب الرجوع إلى الموارد من نظام الملفات. بمجرد تطوير المشروع ، أود نشر التطبيق كقابلة للتنفيذ. تجدر الإشارة إلى أن هؤلاء التنفيذيين سيتم نشرهم/إطلاقه على منصات Windows و *Nix و Linux.

أعلم أنه يمكن القيام بذلك في عالم Visual Studio ، لكنني غير مألوف جدًا لكيفية القيام بذلك في Java/Eclipse IDE. كمسألة جانبية ، كيف يمكنني الحصول على Eclipse لإنشاء المشروع على أنه قابل للتنفيذ حتى يمكن إطلاقه؟

أي مساعدة يحظى بتقدير كبير.

علامة

تحديث 1:

بناء على استجابة بالوس, ، أردت مشاركة الكود الذي يجب أن أحل مشكلتي. فصولي تحت حزمة ""Viking.Test"ثم وضعت ملف الصورة أسفل الحزمة"Viking.Test.Resources". كل هذا يتم داخل Eclipse لاستيراد الصورة في المشروع.

  1. لقد استوردت الصورة بالنقر بزر الماوس الأيمن على المشروع -> استيراد -> نظام عام/ملف لمصدر الاستيراد.
  2. حدد المجلد الذي يحتوي على الصورة للاستيراد
  3. المحدد "Project/src/Viking/Test/Resources"في مجلد" معامل
  4. لم يغير أي من الخيارات والنقر عليه "تم الانتهاء من"

في الملف المصدر ، أضفت الكود التالي لإدراج الصورة في JLabel (LblLogo)

try
{
  ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
  InputStream input = classLoader.getResourceAsStream(
    "Viking/Test/Resources/MyImage.jpg");
  Image logo = ImageIO.read(input);
  LblLogo = new JLabel( new ImageIcon( logo ) );
  LblLogo.setBounds(20, 11, 210, 93);
  getContentPane().add(LblLogo);
}
catch ( IOException e ) {  }
هل كانت مفيدة؟

المحلول

فقط ضع هذه الموارد في بنية المصدر/الحزمة والاستخدام ClassLoader#getResource() أو getResourceAsStream() للحصول عليها URL أو InputStream من classpath بواسطة مسار الحزمة المؤهلة الكاملة.

ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
InputStream input = classLoader.getResourceAsStream("/image.gif");
// ...

أو إذا كانت في نفس الحزمة مثل الفئة الحالية ، فيمكنك أيضًا الحصول عليها على النحو التالي:

InputStream input = getClass().getResourceAsStream("image.gif");

كمسألة جانبية ، كيف يمكنني الحصول على Eclipse لإنشاء المشروع كقابلة للتنفيذ بحيث يمكن إطلاقه.

Project Java Rightclick> تصدير> ملف جرة Runnable .

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