Chcę używać poleceń systemowych, takich jak mkdir
i rmdir
podczas uruchamiania programu java.Sposób korzystania z poleceń mkdir i rmdir w programie java
Jak mogę to zrobić?
Chcę używać poleceń systemowych, takich jak mkdir
i rmdir
podczas uruchamiania programu java.Sposób korzystania z poleceń mkdir i rmdir w programie java
Jak mogę to zrobić?
Dlaczego chcesz używać wiersza poleceń? FYI, są wbudowane niezależne od platformy klasy File
.
http://www.exampledepot.com/egs/java.io/deletefile.html
http://www.roseindia.net/java/beginners/java-create-directory.shtml
katalogu Producent:
new File("dir path").mkdir();
usunąć katalogu:
new File("dir path").delete();
'nowy plik' jest nieco mylące, nie jest faktycznie tworzenia katalog lub plik. Tworzy zasób haseł Java, który można wykorzystać do zapytania lub działania na istniejącym zasobie systemu plików lub utworzyć nowy na żądanie. W przeciwnym razie użyj polecenia Runtime.getRuntime().exec("command line here")
do korzystania z wiersza poleceń (niezalecane !!).
Edit: załatwione problem plakat pytanie ma:
String envp[] = new String[1];
envp[0] = "PATH=" + System.getProperty("java.library.path");
Runtime.getRuntime().exec("command line here", envp);
Uwaga wkładanie envp
do rozmowy exec(..)
metoda, która jest w zasadzie PATH
zmienna ze środowiska.
Najlepiej nie jest, ale raczej znaleźć czystą funkcję API Java, która to robi. Jest czystszy, łatwiejszy do zrozumienia i mniej podatny na błędy. Jest to również jedyny sposób na zrobienie Java, która jest zapisywana raz uruchomiona wszędzie. Gdy wywołasz polecenia powłoki, jesteś przywiązany do tej powłoki.
W twoim przypadku szukasz klasy java.io.File, a szczególnie metod mkdir i delete.
Istnieją metody tego w Java API i ładnie zapakowane implementacje w commons-io, które upraszczają proces dalej.
http://commons.apache.org/proper/commons-io/apidocs/org/apache/commons/io/FileUtils.html
Jako drugi wspomniano, nie należy tego robić na proste zarządzanie plikami. Ale aby go wymienić: API Java ma klasy o nazwie Runtime, który pozwala wywołań systemowych ... na przykład:
Runtime.getRuntime().exec("some_command");
Dla porównania osób potykając na to pytanie i zastanawiasz się, dlaczego Runtime.getRuntime().exec("mkdir foo")
nie działa nawet wtedy, gdy Włączając środowisko zgodnie z odpowiedzią Chrisa Dennetta, najbardziej prawdopodobnym powodem jest to, że nie masz w systemie programu o nazwie "mkdir". Podczas gdy większość systemów uniksowych ma program o tej nazwie, nie jest absolutnie konieczne, aby je miały, a Windows go nie ma, ponieważ w obu przypadkach powłoka interpretuje to polecenie, zamiast przekazywać je do program zewnętrzny.
Aby to działało, spróbuj ... exec ("cmd /c mkdir foo")
dla systemu Windows NT (lub "command /c mkdir foo"
dla rodziny Windows 95) lub exec ("sh -c \"mkdir foo\"")
dla systemu Unix.
Fakt, że nie jest to niezależny od platformy sposób, jest kolejnym powodem, dla którego należy preferować interfejsy API języka Java do wykonywania zadania.
Witam Zgadzam się na to, że nie było to niezależne od platformy, ale tylko do testowania aplikacji musiałem z niej korzystać. Rozwiązanie w moim przypadku dla Runtime.getRuntime(). Exec ("moja_nazwa_polecenia"); za nie działa to musiałem podać pełną ścieżkę do gdzie/sh plik wsadowy/wykonywalny był tj.
Runtime.getRuntime() exec ("/ d/temp/bin/mybatfile");
makedirectory metoda -
File dir = new File("path name");
boolean isCreated = dir.mkdir();
metoda usuwania -
public boolean delete()
true if and only if the file or directory is successfully deleted; false otherwise
Więcej patrz poniżej linki -
https://docs.oracle.com/javase/8/docs/api/java/io/File.html
http://www.flowerbrackets.com/create-directory-java-program/
thnxs, Ten obiekt Runtime jest tym, czego szukałem. Po uruchomieniu tego kodu: Runtime.getRuntime(). Exec ("mkdir blah"); wyrzuć wyjątek, java.io.IOException: Nie można uruchomić programu "mkdir": CreateProcess error = 2, System nie może znaleźć określonego pliku –