تضمين الموارد (الصور ، البتات الصوتية ، إلخ) في مشروع Java ثم استخدم هذه الموارد
-
03-10-2019 - |
سؤال
لقد بحثت عن طريقة لتضمين مورد في مشروع Java (باستخدام Eclipse v3.6.0) ثم باستخدام هذا المورد المضمن ضمن عنصر تحكم (على سبيل المثال ، JLabel
). لقد رأيت أساليب الرجوع إلى الموارد من نظام الملفات. بمجرد تطوير المشروع ، أود نشر التطبيق كقابلة للتنفيذ. تجدر الإشارة إلى أن هؤلاء التنفيذيين سيتم نشرهم/إطلاقه على منصات Windows و *Nix و Linux.
أعلم أنه يمكن القيام بذلك في عالم Visual Studio ، لكنني غير مألوف جدًا لكيفية القيام بذلك في Java/Eclipse IDE. كمسألة جانبية ، كيف يمكنني الحصول على Eclipse لإنشاء المشروع على أنه قابل للتنفيذ حتى يمكن إطلاقه؟
أي مساعدة يحظى بتقدير كبير.
علامة
تحديث 1:
بناء على استجابة بالوس, ، أردت مشاركة الكود الذي يجب أن أحل مشكلتي. فصولي تحت حزمة ""Viking.Test
"ثم وضعت ملف الصورة أسفل الحزمة"Viking.Test.Resources
". كل هذا يتم داخل Eclipse لاستيراد الصورة في المشروع.
- لقد استوردت الصورة بالنقر بزر الماوس الأيمن على المشروع -> استيراد -> نظام عام/ملف لمصدر الاستيراد.
- حدد المجلد الذي يحتوي على الصورة للاستيراد
- المحدد "
Project/src/Viking/Test/Resources
"ل "في مجلد" معامل - لم يغير أي من الخيارات والنقر عليه "تم الانتهاء من"
في الملف المصدر ، أضفت الكود التالي لإدراج الصورة في 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 .