Максимальный размер переменной среды составляет около 32760 символов. Однако максимальный размер отдельной командной строки в cmd
(и, следовательно, в пакетных файлах) составляет 8190 символов.
Так как здесь вы создаете очень длинную переменную CLASSPATH
, вы сталкиваетесь с этим ограничением, даже если рассматриваемая переменная окружения все еще может быть намного длиннее. Отсроченное расширение, вероятно, здесь не поможет, так как все равно приводит к громоздкой длинной командной строке.
В настоящее время я вижу два варианта:
- Используйте VBScript вместо командного файла. Я думаю 1 , что он поддерживает строки длиннее. Кроме того, вы не обязаны записывать весь путь к классам в одной строке кода; это может быть легко в строке.
- Используйте
setx
, включенный в Windows Vista или более позднюю версию, или в комплект Windows Resource Kit до этого. setx
позволяет вам читать из файла, но он также записывает напрямую в реестр, так что это по сути эквивалентно установке пути к классам в среде вашего пользователя (а не только для одного процесса).
1 Я нигде не уверен, но он не наследует устаревшую кодовую базу cmd
, поэтому это может быть разумным предположением.