getClass().getResource("filename.txt")
পদ্ধতিটি ব্যবহারে আমার সমস্যা ছিল । জাভা ডক্স নির্দেশাবলী পড়ার পরে, যদি আপনার উত্সটি আপনি যে শ্রেণীর থেকে সংস্থানটি অ্যাক্সেস করার চেষ্টা করছেন তার মতো প্যাকেজে না থাকে, তবে আপনাকে এটিকে শুরু করে আপেক্ষিক পথটি দিতে হবে '/'
। প্রস্তাবিত কৌশলটি হ'ল আপনার সংস্থান ফাইলগুলি মূল ডিরেক্টরিতে "রিসোর্স" ফোল্ডারের নিচে রাখা। সুতরাং উদাহরণস্বরূপ যদি আপনার কাঠামো থাকে:
src/main/com/mycompany/myapp
তারপরে আপনি মাভেন দ্বারা প্রস্তাবিত হিসাবে একটি সংস্থান ফোল্ডার যুক্ত করতে পারেন:
src/main/resources
এছাড়াও আপনি সংস্থানসমূহ ফোল্ডারে সাবফোল্ডার যুক্ত করতে পারেন
src/main/resources/textfiles
এবং বলুন যে আপনার ফাইলটি তাই বলা myfile.txt
হয়েছে
src/main/resources/textfiles/myfile.txt
এখন এখানে মূ the় পাথ সমস্যাটি আসে। বলুন আপনার একটি ক্লাস রয়েছে com.mycompany.myapp package
এবং আপনি myfile.txt
আপনার সংস্থান ফোল্ডার থেকে ফাইলটি অ্যাক্সেস করতে চান । কেউ কেউ বলে যে আপনার দেওয়া দরকার:
"/main/resources/textfiles/myfile.txt" path
বা
"/resources/textfiles/myfile.txt"
এই দুটিই ভুল। আমি দৌড়ানোর পরে mvn clean compile
ফাইল এবং ফোল্ডারগুলি অনুলিপি করা হয়:
myapp/target/classes
ফোল্ডার তবে রিসোর্স ফোল্ডার নেই, রিসোর্স ফোল্ডারে কেবল ফোল্ডার রয়েছে। সুতরাং তোমার আছে:
myapp/target/classes/textfiles/myfile.txt
myapp/target/classes/com/mycompany/myapp
সুতরাং getClass().getResource("")
পদ্ধতিটি দেওয়ার সঠিক পথটি হ'ল:
"/textfiles/myfile.txt"
এটা এখানে:
getClass().getResource("/textfiles/myfile.txt")
এটি আর শূন্য হবে না, তবে আপনার ক্লাসটি ফিরিয়ে দেবে। আমি এই কারো সাহায্য করে আশা করি। আমার কাছে আশ্চর্যের বিষয়, "resources"
ফোল্ডারটি পাশাপাশি অনুলিপি করা হয়নি, তবে কেবল "resources"
ফোল্ডারে কেবল সাবফোল্ডার এবং ফাইল । এটি আমার কাছে যৌক্তিক মনে হবে যে "resources"
ফোল্ডারটিও নীচে পাওয়া যাবে"myapp/target/classes"