- Sí. Puede usar algún generador de configuración, como InnoSetup, por ejemplo. Personalmente, sin embargo, me gusta dar a mis clientes un archivo zip, que extraen donde quieran. El jar ejecutable debería ser capaz de manejar todo por sí mismo (me gusta donde no es necesario instalar el software, simplemente descomprimir y ejecutar).
- Si está codificado, entonces sí (pero, ¿qué quiere decir con codificado ? ruta al archivo? ¿dirección IP?). Debe usar propiedades o archivos de configuración para las rutas y otras cosas externas de las que depende su software. El software debe leer de esos archivos. Al iniciar, verifique la presencia de dichos archivos; si faltan, se debe mostrar al usuario una ventana en la que se puede ingresar la configuración.
En cuanto a la implementación de MySQL con su código, considere usar un servidor para eso, de modo que sus usuarios no se vean obligados a instalar MySQL, sino que se conecten a él a través de la red. Si necesita la base de datos solo para almacenar datos localmente, ¿por qué no usar SQLite o un motor de base de datos similar basado en archivos?
Las respuestas anteriores son solo sugerencias y más o menos reflejan la forma en que estoy pensando. Me encantaría saber de alguien con más experiencia. No obstante, espero que las respuestas ayuden un poco :)