[ubuntu-ar] offtopic a medias: java para windows y linux

Pablo Lillia pablofer72 at yahoo.com.ar
Thu Sep 11 01:03:56 BST 2008


El 10/09/2008 09:32, Gabriel Ferro escribió:
> Maestros, los molesto porque no se a quien acudir, si bien es un
> problema de java, la necesidad es por tener que usar linux y windows. La
> cosa es que hice una aplicacion java con netbeans bajo windows, ahora
> quiero ejecutarla en linux, la cosa es que quiero hacer algo asi como un
> "configuracion.ini" donde pueda setear algunos parametros como:
> SALTOLINEA="\n";
> BARRADIR="\\";
> CAMINO_IN="c:"+BARRADIR+"prueba";
> CAMINO_OUT="c:"+BARRADIR+"prueba"+BARRADIR+"salida";
> CAMINO_BACKUP="c:"+BARRADIR+"prueba"+BARRADIR+"procesados";
> 
> para despues usarlos como constantes en java , como se puede hacer esto?
> como leer el archivo sin tratarlo solo como un simple archivo de texto y
> como una vez extraida la variable usarla como constante en todos los .java.
> 
> Saludos.
> 

Te recomiendo la lista DesarrolloJava en gruposyahoo.com.ar que es
específica de java.

Pero ya que estamos :), dado que Java está fuertemente inspirado por
Unix, por defecto usa la notación Unix ;). Entonces, si especificás los
paths en dicha notación, es mucho más simple (la conversión se hace
sola) y tenés portabilidad inmediata (iupi!) Por ejemplo, el path
//C://windows/ se transforma solo en C:\windows\. Te adjunto una clase
de ejemplo.

Si de todas formas tenés que escribir un path de windows, como el
caracter \ es el símbolo de escape para las cadenas, tenés que cambiar
los \ por \\
Entonces, algunos de los caracteres de escape en cadenas son:
	\n	-> salto de linea
	\t	-> salto de tab
	\\	-> caracter \

Por eso, si en un archivo properties (o ini), o en cualquier string
constante dentro del fuente, hay que reemplazar las \ por \\.

Igualmente, por si fuera necesario, hay variables del sistema que se
configuran solas según el entorno, y que devuelven los separadores de
path, de directorio, del salto de linea, etc. Por ejemplo, fijate en la
clase java.io.File los atributos separatorChar, separator,
pathSeparatorChar y pathSeparator. También se obtienen las propiedades
del sistema de la forma System.getProperty("line.separator") (revisá la
API para ver otras similares).

Y desde java 5 es más fácil y por el mismo precio :D, porque usando las
nuevas clases y métodos como java.util.Formatter, o con String.format(),
o con PrintWriter.format(), podés formatear cadenas fácilmente con un
estilo similar al printf de C (por fin). Con esta sintaxis, un %n se
transforma en el salto de linea que corresponda, o se un \n en unix, o
una combinación \r\n en windows. En la última linea de la clase que
adjunto, incluí un ejemplo de esto.

Entonces, tu archivo properties, en windows quedaría con esto solo:

	CAMINO_IN=//c:/prueba
	CAMINO_OUT=//c:/prueba/salida
	CAMINO_BACKUP=//c:/prueba/procesados

y en linux con algo así:

	CAMINO_IN=/data/prueba
	CAMINO_OUT=/data/prueba/salida
	CAMINO_BACKUP=/data/prueba/procesados

Saludos,
Pablo


------------ próxima parte ------------
Se ha borrado un mensaje que no est? en formato texto plano...
Nombre     : TestPath.java
Tipo       : text/x-java
Tama?o     : 448 bytes
Descripci?n: no disponible
Url        : https://lists.ubuntu.com/archives/ubuntu-ar/attachments/20080910/c249ef3c/attachment-0001.java 


More information about the Ubuntu-ar mailing list