Yani, tedavi etmek istiyorsun .properties
dosyanızı ana / çalıştırılabilir kavanozun bir kaynağı yerine bir dosya olarak ana / çalıştırılabilir kavanozla aynı klasörde . Bu durumda benim çözümüm şu şekilde:
Öncelikle ilk şey: program dosya mimariniz şöyle olacaktır (ana programınızın main.jar ve ana özellikler dosyasının main.properties olduğunu varsayarak):
./ - the root of your program
|__ main.jar
|__ main.properties
Bu mimari ile, main.properties dosyasındaki herhangi bir özelliği, yalnızca metin tabanlı bir dosya olduğundan, main.jar'ınız çalışmadan önce veya çalışırken (programın mevcut durumuna bağlı olarak) herhangi bir metin düzenleyicisini kullanarak değiştirebilirsiniz. Örneğin, main.properties dosyanız şunları içerebilir:
app.version=1.0.0.0
app.name=Hello
Dolayısıyla, ana programınızı kök / temel klasöründen çalıştırdığınızda, normalde şu şekilde çalıştırırsınız:
java -jar ./main.jar
veya hemen:
java -jar main.jar
Main.jar dosyanızda, main.properties dosyanızda bulunan her özellik için birkaç yardımcı yöntem oluşturmanız gerekir; diyelim ki app.version
mülk getAppVersion()
aşağıdaki gibi bir metoda sahip olacak :
/**
* 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;
}
Ana programın app.version
değere ihtiyaç duyan herhangi bir bölümünde , yöntemini şu şekilde adlandırıyoruz:
String version = null;
try{
version = getAppVersion();
}
catch (IOException ioe){
ioe.printStackTrace();
}
user.home
. Dosyayı kontrol ederken, önce şu dosyanın varlığını kontrol edin: dosya sisteminde değiştirilmiş bir dosya ve yoksa, varsayılan dosyayı yükleyin. " BTW "İstemiyorum .." İstediğiniz, işe yarayan ve pratik olan şeyden daha az önemlidir. Uygulama kaydediliyor. uygulama dizinindeki ayarlar, hem Oracle hem de MS (ve muhtemelen diğerleri) tarafından kesinlikle önerilmez.