Creacion de archivos dentro de un jar

Pues veran amigos ando batallando con esto, tengo un directorio llamado "src" que contiene los archivos .java, un directorio llamado "bin" que contiene los .class y un directorio llamado Configuracion donde guardare un archivo txt .
Lo hago de la siguiente forma:

File A = new File("bin/Configuracion/conf.txt");

Esto funciona sin problemas, pero cuando creo un jar y ejecuto el jar en otra maquina u otra carpeta , ya no lo crea , debido a que en el jar ya no existe la carpeta src, en el jar solo quedan la carpeta "Configuracion","META-INF" y los .class quedan en raiz por asi decirlo.
Ahora bien puedo leer el archivo si este ya existiera , lo leeo de la siguiente forma;

             rutaDelArchivo             = Conexion.class.getResource("Configuracion/conf.txt");
                        buffer                  = new BufferedReader(new InputStreamReader(rutaDelArchivo.openStream()));

Pero si el archivo no existe es donde empiezan mis dudas: ¿se pueden crear archivos dentro de un jar ya creado?,en caso de no poderse ¿como crearia el archivo en la misma carpeta que se encuentra el jar?, ¿O de plano la mejor idea es suponer que el usuario no tiene los conocimientos para borrar el archivo del jar, y crear el archivo junto con el jar?

Bueno estoy intentando manejar estos archivos asi, por que mi programa se conecta a una base de datos y en este archivo quiero poner la configuracion en cuanto a host, puerto,usuario y contraseña de la base de datos se refiere, que como sabemos en cada maquina puede cambiar,¿es una buena idea manjerlo asi o cual seria la mejor manera?

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de 043h68

ServletContext

Aunque no entendí del todo la explicación de tu problema, creo que se solucionaría utilizando una instancia de ServletContext el cual te puede devolver el contexto y así poder completar la ruta de cierta carpeta, etc.

Un ejemplo sencillo sería mas o menos así:

File file = new File(servletContext.getRealPath("/carpeta/archivoGenerar.txt"));

Solo he encontrado detalles de utilizar el realpath con Weblogic, pero eso es cuestión de configuración, en cualquier otro servidor de aplicaciones no deberías tener problema.

Si quieres profundizar un poco mas, lee sobre componentes, el libro de certificación de Oracle tiene bien explicada esta parte. :D

Saludos.

Imagen de puzzlemaniaco

gracias por la respuesta ,

gracias por la respuesta , peor se me olvido mencionar que es una aplicacion de escritorio y creo que lo que tu mencionas es para web verdad

Imagen de arterzatij

Intenta con...

// Encontrar donde se encuentra el JAR:
String path = ClaseDondeLLamasElArchivo.class.getProtectionDomain().getCodeSource().getLocation().toURI().getPath();
path = path.substring(0, path.lastIndexOf('/')+1);
// Crear la ruta a la carpeta:
File root = new File(path);

Despues deberias de poder ejecutar lo siguiente:

File myFile = new File(root, "tuArchivo.txt");

Saludos espero te funcione...

Imagen de arterzatij

Tambien

Te recomiendo que agregues la localidad de esa carpeta fuera del jar

quedando:

Aplicacion/
Configuracion
jar

Trata de configurar igual tu espacio de trabajo y agrega la carpeta de Configuracion como una fuente de codigo

Imagen de puzzlemaniaco

aaaaaaaaaa ok

gracias por responder probare tu solucion , auque ya lo habia resuelto de la siguiente manera

primero creo una carpeta con una ruta en donde se este ejecutando el jar y dentro le agrego un archivo txt

carpeta = new File(System.getProperty("user.dir")+"\\"+"Configuracion");
                 archivo=new File(carpeta.getAbsolutePath()+"\\"+"conf.txt");

despues compruebo si ambos existen , si existen sigo con mi proceso normal si no,los creo

        carpeta = new File(System.getProperty("user.dir")+"\\"+"Configuracion");
                                archivo=new File(carpeta.getAbsolutePath()+"\\"+"conf.txt");
                                carpeta.mkdirs();
Imagen de beto.bateria

Interesante

Interesante

Imagen de 043h68

>.<'

Si, la respuesta es para web.

De cualquier manera que bueno que encontraste la solución !

Saludos.