2010-04-20 9 views
12

Hola chicos pregunta Java novato.Cómo incluir archivos de texto con el Frasco Ejecutable

Tengo un proyecto de Java y quiero incluir un archivo de texto con el archivo ejecutable. En este momento, el archivo de texto está en el paquete predeterminado.

InputFlatFile currentFile = new InputFlatFile ("src/theFile.txt");

Cojo el archivo con esa línea como puede ver usando src. Sin embargo, esto no funciona con el jar ejecutable.

¿Alguien me puede dejar saber cómo mantener este archivo con el archivo ejecutable para que alguien que use el programa pueda simplemente hacer clic en un solo icono y ejecutar el programa.

Gracias!

+2

Puede usar getResourceAsStream (http://java.sun.com/javase/7/docs/api/java/lang/ClassLoader.html#getResourceAsStream%28java.lang.String%29). Consulte http://stackoverflow.com/questions/574809/java-load-a-resource-contained-in-a-jar, entre otras preguntas. –

+0

Gracias, echaré un vistazo a eso. – Jake

Respuesta

5

El directorio base en el archivo jar está en el classpath.

Pruebe InputFlatFile currentFile = new InputFlatFile ("theFile.txt");

Probablemente esté usando un IDE y tiene una carpeta src que el IDE usa para la base de los paquetes. Cuando crea el archivo jar desde el IDE, entonces elimina la carpeta src y la carpeta raíz contiene los paquetes.

es decir, en el eclipse src/com.blah.blah una vez que el archivo jar se crea la estructura se convierte en com.blah.blah

Por supuesto, supongo que InputFlatFile está leyendo correctamente el valor.

http://www.devdaily.com/blog/post/java/read-text-file-from-jar-file

+0

¡Gracias, ese enlace me ayudó a resolverlo! – Jake

+0

desearía que funcionase para mí. Tengo dos archivos en la 'raíz' del archivo jar y aparece un error en securityProps.setProperty ("javax.net.ssl.trustStore", "CDAtruststore.jks"); El error es que 'el sistema no puede encontrar el archivo especificado', pero los archivos están ahí en el nivel superior dentro del contenedor. Me ha desconcertado por horas. –

5

que queremos en el jar ejecutable? a continuación para leer el archivo se debe utilizar

getClass().getResourceAsStream() 

para leer el archivo.

Guarde el archivo de texto en el paquete desde el que desea acceder. El cargador de clases lo encontrará.

Recuerde también que los nombres de archivos en JAR distinguen entre mayúsculas y minúsculas.

Cuestiones relacionadas