que suelen almacenar en el directorio de datos de usuario, con los subdirectorios de nombre de la aplicación seguido de versión de la aplicación.
public static String getUserDataDirectory() {
return System.getProperty("user.home") + File.separator + ".jstock" + File.separator + getApplicationVersionString() + File.separator;
}
He estado utilizando el siguiente código durante 3 años. Este método funciona bastante bien en Windows, Linux o Mac.
Tenga en cuenta que, en Windows, nunca lo almacene en Program Files
, ya que UAC en Windows Vista o posterior puede causarle muchos problemas.
Recuerde poner un punto en frente del nombre de su aplicación, de modo que se convierta en una carpeta oculta en Linux.
Lo bueno de usar esta metodología es que no está limitado a almacenar valores primitivos solamente. En su lugar, puede guardar todo el estado de los objetos en el disco mediante el uso de xstream
Por ejemplo:
public static boolean toXML(Object object, File file) {
XStream xStream = new XStream();
OutputStream outputStream = null;
Writer writer = null;
try {
outputStream = new FileOutputStream(file);
writer = new OutputStreamWriter(outputStream, Charset.forName("UTF-8"));
xStream.toXML(object, writer);
}
catch (Exception exp) {
log.error(null, exp);
return false;
}
finally {
close(writer);
close(outputStream);
}
return true;
}
¿Dónde almacenaremos la clave requerida? –
Bonito tutorial de introducción aquí: http://www.mkyong.com/java/java-properties-file-examples/ –
Quiero señalar que en Windows podría tener que cambiar el registro si está utilizando Preferencias. Para un usuario normal de su aplicación, esto podría ser un bloqueador (no-go!). –