Я хочу использовать системные команды как mkdir
и rmdir
при запущении программы Java.
Как я могу сделать это?
Почему вы хотите использовать командную строку? К вашему сведению, существуют встроенные платформенно-независимые классы File
.
http://www.exampledepot.com/egs/java.io/deletefile.html
http://www.roseindia.net/java/beginners/java-create-directory.shtml
Сделать directory:
new File("dir path").mkdir();
Удалить каталог:
new File("dir path").delete();
«новый файл» здесь немного неправильное название, это фактически не создает каталог или файл. Он создает ловушку ресурсов Java, которую вы можете использовать для запроса или работы с существующим ресурсом файловой системы или для создания нового по вашему запросу. В противном случае используйте Runtime.getRuntime (). Exec («здесь командная строка»)
для использования операций командной строки (не рекомендуется !!).
Правка: устранена проблема, с которой столкнулся плакат с вопросом:
String envp[] = new String[1];
envp[0] = "PATH=" + System.getProperty("java.library.path");
Runtime.getRuntime().exec("command line here", envp);
Обратите внимание на вставку envp
в вызов метода exec (..)
, который по сути является PATH
переменная из окружения.
Лучше не искать, а найти чистый Java API функция, которая это делает. Он чище, проще для понимания и гораздо менее подвержен ошибкам. Кроме того, это единственный способ сделать Java - писать один раз и запускать везде. После того, как вы вызываете команды оболочки, вы привязаны к этой оболочке.
В вашем случае вы ищете класс java.io.File и, в частности, методы mkdir и delete .
В Java API есть методы для этого и красиво оформленные реализации в commons-io, которые упрощают процесс дальше.
http://commons.apache.org/proper/commons-io/apidocs/org/apache/commons/io/FileUtils.html
Как уже упоминалось, вы не должны делать это для простого управления файлами. Но чтобы упомянуть: Java API имеет класс под названием Runtime , который разрешает системные вызовы ... например:
Runtime.getRuntime().exec("some_command");