Каждое выполнение exec
порождает новый процесс с собственной средой. Таким образом, ваш второй вызов никак не связан с первым. Он просто изменит свой собственный рабочий каталог, а затем завершит работу (т. Е. Фактически не работает).
Если вы хотите составить запрос, вам нужно сделать это в течение одного вызова exec
. Bash позволяет указывать несколько команд в одной строке, если они разделены точкой с запятой; Windows CMD может разрешать то же самое, и если нет, то всегда есть пакетные сценарии.
Как сказал Петр , если этот пример на самом деле , что вы пытаетесь достичь, вы можете выполнить то же самое гораздо более эффективно, действенно и безопасно на платформе с помощью следующего :
String[] filenames = new java.io.File("C:/").list();