java - directorio - mkdir falta un operando
Cómo usar los comandos mkdir y rmdir en un programa java (7)
¿Por qué quieres usar la línea de comando? FYI, hay clases de File
independientes de plataforma incorporadas.
http://www.exampledepot.com/egs/java.io/deletefile.html
http://www.roseindia.net/java/beginners/java-create-directory.shtml
Hacer directorio:
new File("dir path").mkdir();
Eliminar directorio:
new File("dir path").delete();
''nuevo archivo'' aquí es un poco inapropiado, en realidad no está creando el directorio o un archivo. Está creando un enlace de recursos de Java que puede usar para consultar u operar sobre un recurso de sistema de archivos existente, o crear uno nuevo a petición suya. De lo contrario, utilice Runtime.getRuntime().exec("command line here")
para usar operaciones de línea de comandos (¡no se recomienda!).
Editar: resolvió el problema que estaba teniendo el cartel de la pregunta:
String envp[] = new String[1];
envp[0] = "PATH=" + System.getProperty("java.library.path");
Runtime.getRuntime().exec("command line here", envp);
Tenga en cuenta la inserción de envp
en la llamada al método exec(..)
, que es básicamente la variable PATH
del entorno.
Quiero usar comandos de sistema como mkdir
y rmdir
mientras rmdir
un programa java.
¿Cómo puedo hacer eso?
Como mencionó el otro, no debes hacer esto para una administración de archivos simple. Pero para tenerlo mencionado: La API de Java tiene una clase llamada Runtime , que permite llamadas al sistema ... por ejemplo:
Runtime.getRuntime().exec("some_command");
Como referencia de personas que tropiezan con esta pregunta y se preguntan por qué Runtime.getRuntime().exec("mkdir foo")
no funciona incluso cuando incorpora el entorno según la respuesta de Chris Dennett, la razón más probable es que no tiene un programa llamado "mkdir" en su sistema. Si bien la mayoría de los sistemas tipo Unix tienen un programa de este nombre, no es absolutamente necesario que tengan uno, y Windows no tiene uno, porque en ambos casos el shell interpreta este comando, en lugar de pasarlo a un programa. programa externo.
Para hacerlo funcionar, intente ... exec ("cmd /c mkdir foo")
para NT-family Windows (o "command /c mkdir foo"
para la familia de Windows 95), o exec ("sh -c /"mkdir foo/"")
para Unix.
El hecho de que no existe una forma independiente de plataforma para hacer esto es otra razón más para preferir las API de Java para realizar la tarea.
Hay métodos para esto en la API de Java, y implementaciones bien envueltas en commons-io que simplifican aún más el proceso.
http://commons.apache.org/proper/commons-io/apidocs/org/apache/commons/io/FileUtils.html
Hola, estoy de acuerdo con el hecho de que no he sido independiente de la plataforma, pero solo para probar una aplicación tuve que usarla. La solución en mi caso para Runtime.getRuntime (). Exec ("my_command_name"); para no funcionar era necesario dar la ruta completa a donde estaba el archivo batch / sh / ejecutable, es decir:
Runtime.getRuntime (). Exec ("/ d / temp / bin / mybatfile");
Lo mejor es no hacerlo, sino encontrar la función pura de API de Java que lo hace. Es más limpio, más fácil de entender y mucho menos propenso a errores. También es la única forma de hacer Java que se escribe una vez que se ejecuta en todas partes. Una vez que está llamando comandos de shell, está vinculado a ese shell.
En su caso, usted está buscando la clase java.io.File , y específicamente los métodos mkdir y delete .
método macedirectory -
File dir = new File("path name");
boolean isCreated = dir.mkdir();
eliminar método -
public boolean delete()
true if and only if the file or directory is successfully deleted; false otherwise
Para obtener más información, consulte los enlaces a continuación -
https://docs.oracle.com/javase/8/docs/api/java/io/File.html
http://www.flowerbrackets.com/create-directory-java-program/