Первоначально я думал, что это просто оболочка командной строки, выполняющая расширение имени файла. Это то, что я ожидал бы в Unix-подобной системе, но не в Windows ... но то же самое происходит со мной и в Windows.
Это не происходит, когда я пишу эквивалентный код C # ... поэтому я подозреваю, что это происходит в исполняемом модуле запуска Java. (Обратите внимание, что javaw.exe ведет себя так же, как java.exe.)
Это, конечно, стало для меня неожиданностью, и я не думаю, что более старые версии Java не делали этого в Windows, хотя в этом сообщении в списке рассылки за декабрь 2000 г. предлагается " Я не прав. (Я использую OpenJDK 1.7 JRE.)
Я не могу найти никакого описания этого общего случая в документации Java Windows - в нем упоминается расширение записей пути к классам, но не общие аргументы.