operando falta directorio crear como comandos comando java command-line cmd

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.



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 .