Ответ
Нет, разделители путей по умолчанию различаются.
| Система | Разделитель каталогов | Пример абсолютного пути |
|---|---|---|
| Windows | Обратная косая черта () |
C:UsersDocumentfile.txt |
| Unix/Linux/macOS | Прямая косая черта (/) |
/home/user/document/file.txt |
Как правильно работать с путями в Java для кроссплатформенности?
-
Использовать класс
java.nio.file.PathиPaths.get()(рекомендуется):// JVM автоматически использует корректный разделитель Path path = Paths.get("myDir", "subDir", "file.txt"); System.out.println(path); // На Unix: myDir/subDir/file.txt // На Windows: myDirsubDirfile.txt -
Использовать константу
File.separator:String path = "dir" + File.separator + "file.txt"; -
Использовать прямую черту (
/) в строковых литералах: Виртуальная машина Java (JVM) на Windows автоматически корректно интерпретирует/при работе с классамиFileилиPath.// Этот код будет работать и на Windows, и на Unix File file = new File("src/main/resources/config.yml");
Вывод: Для написания переносимого кода всегда предпочитайте Paths.get() или File.separator ручной конкатенации строк с жёстко заданными разделителями.