2012-02-21 19 views
6
logpath = LoggerUtils.getProperties().getProperty("log.path"); 
System.out.println("logpath: " + logpath); 

I rendimenti di codice di cui sopra:proprietà Java, ottenendo percorso del file

logpath: C:UsersMauriceDesktopLogs 

Nel file delle proprietà è:

log.path C:\Users\Maurice\Desktop\Logs 

Come si conservano i separatori di file? Voglio che funzioni anche su Linux e non solo su Windows.

risposta

14

In realtà, è necessario mettere questo nel file di proprietà:

log.path C:\\Users\\Maurice\\Desktop\\Logs 

Vedi questo:

più precisamente il metodo load:

Scorrere verso il basso un po 'e si vedrà questo tra le altre cose:

il metodo non trattare un carattere di backslash, \, prima che un carattere di escape non valido come errore; il backslash viene rilasciato silenziosamente. Ad esempio, in una stringa Java la sequenza "\ z" causerebbe un errore di compilazione. Al contrario, questo metodo riduce automaticamente la barra inversa. Pertanto, questo metodo considera la sequenza di due caratteri "\ b" come equivalente al singolo carattere 'b'.

La barra rovesciata \ è un carattere di escape che viene silenziato in caso contrario.

+0

Grazie. Ha bisogno di fuggire anche per Linux? – Maurice

+0

Sì, ma suggerirei di usare sempre barre regolari ('/') tutto questo anche su Windows: 'log.path C:/Users/Maurice/Desktop/Logs –

+0

Ah ok, funziona, grazie Un sacco. – Maurice

4

In un file di proprietà, è necessario usare sia per le barre:

C:/Users/Maurice/Desktop/Logs 

Oppure, backslash sfuggito:

C:\\Users\\Maurice\\Desktop\\Logs 
2

Java properties file format impone che il carattere backslash ("\") Escapes il personaggio che lo segue, quindi per ottenere un percorso letterale di Windows devi avere:

logpath: C:\\Users\\Maurice\\Desktop\\Logs 

Tuttavia, Java permette di convertire caratteri separatori di percorso per voi automaticamente per adattarsi alla piattaforma di runtime, in modo da poter evitare questo fastidio utilizzando sempre avanti slash:

logpath: C:/Users/Maurice/Desktop/Logs 
0

è possibile memorizzare il Properties di presentare prima, poi caricarlo di nuovo per l'uso. Properties si occuperà di evadere/disconnettere qualsiasi cosa.

Problemi correlati