Per l'esempio che hai fornito (percorsi dei file), dovresti usare un file di configurazione. Puoi averne uno per ogni piattaforma o uno grande con le impostazioni per tutte le piattaforme. Mi sporgo verso la prima opzione, perché quindi puoi semplicemente usare quel file e impostare tutti i percorsi. Java ha un ricco set di metodi per costruire percorsi di file indipendenti dalla piattaforma; usa cose come File.separator
piuttosto che \
.
Generalmente in Java non è necessario avere progetti separati per piattaforme separate - ecco perché la JVM! Utilizza componenti specifici per solo le parti dell'applicazione che sono specifiche della piattaforma. Nella mia esperienza, non ho visto nulla in Java che deve cambiare per piattaforme diverse. Interagire con il filesystem è più complicato, ma ci sono modi per aggirarlo come descritto sopra. Detto questo, dovresti comunque testare sulle piattaforme che intendi implementare per essere sicuro che tutto funzioni, a volte ci sono sottili differenze nelle JVM per applicazioni specializzate.
Il mio consiglio per i vasi e altri componenti specifici della piattaforma è di avere una struttura di directory simile a questa nel VCS:
/src
/lib
linux/
jars/
config/
windows/
jars/
config/
Quindi negli script di compilazione, includi solo la cartella di cui hai bisogno per la piattaforma che stai creando. Includerei la cartella come lib nella tua build, quindi per una build di Linux avresti finito con (come suggerimento):
/
*yourjar*
*launchfiles*
/lib
jars/
config/
Chiudi tutto quello che vuoi e decomprimilo dove vuoi installarlo. Ciò eviterà di dover specificare percorsi più volte nel codice a spese di un processo di compilazione leggermente più complicato. Probabilmente potresti metterlo anche in un programma di installazione di Windows.