Есть ли способ переопределить java.io.File для выполнения перевода пути к файлу с помощью специального кода? В этом случае я бы перевел удаленные пути в точку монтирования
Да, вы можете выполнить свою собственную реализацию java.io.File
и поместить ее в отдельную банку, а затем загрузить вместо реальной java.io.File
.
Чтобы JVM загрузила его, вы можете использовать свойство java.endorsed.dirs
или параметр java -Xbootclasspath/p:path
в Java Launcher (Java)
НО !!!
Создать собственную версию класса java.io.File
будет не так просто, как изменить устаревший исходный код.
Если вы боитесь что-то сломать, вы можете сначала извлечь все жестко закодированные пути, чтобы использовать пакет ресурсов:
Итак:
File file = new File("C:\\Users\\oreyes\\etc.txt");
Будет:
File file = new File( Paths.get( "user.dir.etc" ));
И Paths
будет иметь внутренний пакет ресурсов
class Paths {
private static ResourceBundle rs = ResourceBundle.getBundle("file.paths");
public static String get( String key ) {
rs.getString( key );
}
}
Вы можете извлекать все эти жестко запрограммированные пути с помощью IDE (обычно это плагин интернационализации).
Предоставьте другой пакет ресурсов для Linux и все готово. Тест и повторное тестирование и повторное тестирование
Итак, используйте предоставьте свой java.io.File
только как последний ресурс.