В моей программе Java я использую библиотеку командной строки для разветвления процесса Java. Это не удается (в зависимости от того, как используется программа), когда путь к файлу JAR, который я передаю в вызове java.exe -jar
, превышает предел длины пути Windows в 260 символов. (Сообщение об ошибке: Error: Unable to access jarfile
, за которым следует имя пути.) Я могу заставить вызов Java работать (вручную), добавляя префикс \\?\
к имени файла JAR. Это решает один конкретный экземпляр проблемы, но является ли это правильным подходом в целом?
Должен ли я ожидать, что программы Windows правильно обработают длинные пути, переданные в качестве аргументов командной строки, или - ответственность за обнаружение длинных путей и добавление префикса \\?\
лежит на вызывающей стороне?
Или менее общий: есть ли ошибка в java.exe
или в библиотеке командной строки?