La mejor forma de probar en diferentes entornos?

Estoy trabajando en un proyecto de Java que necesita funcionar tanto en Mac OS X como en Windows . Hay muchas variables que almacenan routes a varios resources y files.

¿Es la mejor manera de tratar con ellos, ponerlos a todos en una class separada (por ejemplo, constantes) y mantener dos twigs para el file en SVN?

Actualización: no es solo un problema de carácter separador de ruta (barra inclinada hacia delante o hacia atrás). La estructura del directory es diferente para ambos sistemas. En Mac, mantengo mis resources en varios directorys. Diga, imágenes en alguna parte, files de logging en alguna parte. En Windows, podría usar directorys totalmente diferentes. No es necesario que todos los directorys sean parte de un tree (es decir, no están en directorys diferentes bajo un directory principal llamado 'resources' o algo así). Esto no es necesariamente una mala práctica de progtwigción. A veces necesita acceder a files del sistema o directorys comunes de todo el sistema y simplemente no puede ponerlos en un directory supremo

¿Has buscado utilizar un file de properties en su lugar? La configuration de Apache commons debe ser multiplataforma y maneja inteligentemente dónde deberían estar los files de properties.

De esta manera, solo tiene una compilation, pero los files de configuration son específicos del sistema operativo, debe ser considerablemente menor para mantener, comstackr y probar.

No estoy seguro de cuál es exactamente el problema. (Java está diseñado para ser bastante independiente de la plataforma).

Eche un vistazo a java.io.File constante estática pathSeparator, pathSeparatorChar, y separator, y separatorChar. Si tiene una estructura de tree constante para la organización de sus resources (es decir, en formatting de punto: resources.data.test.woof.txt), puede usar File.separatorChar en lugar del '.' y tienes tu path específico del sistema.

Además, no descuides el muy informativo método System.getProperty ().

Eso debería ser suficiente para caminar cualquier path en cualquier FS.

Si está utilizando JDK 1.4 o superior, y el usuario necesita poder cambiar estas routes, puede usar la API de preferences incorporada para almacenarlas / actualizarlas. De lo contrario, podría definir constantes para cada sistema operativo y llamar a System.getProperty(os.name) para averiguar cuál usar. Esto aún debería evitar que tengas que tener comstackciones separadas por plataforma.