সুতরাং, আপনি আপনার .properties
ফাইলটিকে একই / ফোল্ডারে মূল / চলমানযোগ্য জারের হিসাবে ফাইলটিকে প্রধান / চলমানযোগ্য জারের উত্স হিসাবে বিবেচনা করতে চান । সেক্ষেত্রে আমার নিজের সমাধানটি নিম্নরূপ:
প্রথম জিনিস: আপনার প্রোগ্রাম ফাইল আর্কিটেকচারটি এর মতো হবে (ধরে নিলে আপনার মূল প্রোগ্রামটি মূল.ইনার এবং এর প্রধান বৈশিষ্ট্যগুলির ফাইলটি মূল pষধি):
./ - the root of your program
|__ main.jar
|__ main.properties
এই আর্কিটেকচারের সাহায্যে, আপনার মেইন.জার চলমান আগে (প্রোগ্রামের বর্তমান অবস্থার উপর নির্ভরশীল) চলমান পূর্বে বা চলাকালীন কোনও পাঠ্য সম্পাদক ব্যবহার করে আপনি মূল.প্রপার্টি ফাইলগুলিতে যে কোনও সম্পত্তি পরিবর্তন করতে পারেন কারণ এটি কেবল একটি পাঠ্য-ভিত্তিক ফাইল। উদাহরণস্বরূপ, আপনার main.properties ফাইলটিতে এটি থাকতে পারে:
app.version=1.0.0.0
app.name=Hello
সুতরাং, আপনি যখন আপনার মূল প্রোগ্রামটি মূল / বেস ফোল্ডার থেকে চালাবেন, সাধারণত আপনি এটিকে এভাবে চালাবেন:
java -jar ./main.jar
বা, সরাসরি:
java -jar main.jar
আপনার মেইন.জারে, আপনার মেইন.প্রপার্টি ফাইলগুলিতে প্রাপ্ত প্রতিটি সম্পত্তির জন্য আপনাকে কয়েকটি ইউটিলিটি পদ্ধতি তৈরি করতে হবে; যাক নীচে app.version
সম্পত্তিটির getAppVersion()
পদ্ধতি থাকবে :
/**
* Gets the app.version property value from
* the ./main.properties file of the base folder
*
* @return app.version string
* @throws IOException
*/
import java.util.Properties;
public static String getAppVersion() throws IOException{
String versionString = null;
//to load application's properties, we use this class
Properties mainProperties = new Properties();
FileInputStream file;
//the base folder is ./, the root of the main.properties file
String path = "./main.properties";
//load the file handle for main.properties
file = new FileInputStream(path);
//load all the properties from this file
mainProperties.load(file);
//we have loaded the properties, so close the file handle
file.close();
//retrieve the property we are intrested, the app.version
versionString = mainProperties.getProperty("app.version");
return versionString;
}
মূল প্রোগ্রামটির যে কোনও অংশে যেটির app.version
মান প্রয়োজন হয়, আমরা তার পদ্ধতিটিকে নীচে কল করি:
String version = null;
try{
version = getAppVersion();
}
catch (IOException ioe){
ioe.printStackTrace();
}
user.home
যখন ফাইলের জন্য চেক, প্রথম অস্তিত্ব চেক করুন। ফাইল সিস্টেমে একটি পরিবর্তিত ফাইল এবং এটি উপস্থিত না থাকলে ডিফল্ট ফাইলটি লোড করুন। বিটিডাব্লু "আমি চাই না .." আপনি যা চান তা কী কাজ করে এবং ব্যবহারিক তার চেয়ে কম গুরুত্বপূর্ণ। অ্যাপ্লিকেশন সংরক্ষণ করা হচ্ছে। অ্যাপ্লিকেশন ডিরেক্টরিতে সেটিংস অরাকল এবং এমএস (এবং সম্ভবত অন্যরা) উভয়ই দৃ strongly়ভাবে নিরুৎসাহিত করেছেন।