6
votes

Comment utiliser les commandes MKDIR et RMDIR dans un programme Java

Je souhaite utiliser des commandes système telles que mkdir et rmdir lors de l'exécution d'un programme Java.

Comment puis-je faire ça?


0 commentaires

7 Réponses :


15
votes

Pourquoi voulez-vous utiliser la ligne de commande? FYI, il existe des classes de catégorie intégrées de la plate-forme intégrée.

http://www.exampledepot.com/egs/java.io/deleeefile.html
http://www.roseindia.net/java/beginners/java-create -directory.shtml p>

répertoire de fabrication: p> xxx pré>

supprimer le répertoire: p>

String envp[] = new String[1];
envp[0] = "PATH=" + System.getProperty("java.library.path");
Runtime.getRuntime().exec("command line here", envp);


1 commentaires

Thnxs, cet objet d'exécution est ce que je cherchais. Mais quand j'exécute ce code: runtime.getruntime (). EXED ("MKDIR BLAH"); lancer une exception, java.io.ioException: impossible d'exécuter le programme "mkdir": CreateProcess Error = 2, le système ne peut pas trouver le fichier spécifié



3
votes

Le meilleur n'est pas de ne pas, mais plutôt de trouver la fonction pure de l'API Java qui le fait. Il est plus propre, plus facile à comprendre et beaucoup moins d'erreur sujette. C'est aussi le seul moyen de faire Java qui est écriture une fois couru partout. Une fois que vous appelez des commandes shell, vous êtes attaché à cette coquille.

Dans votre cas, vous recherchez le Java.io.File classe, et spécifiquement le mkdir et Supprimer Méthodes.


0 commentaires

1
votes

Il existe des méthodes à cet égard dans l'API Java et des implémentations joliment enveloppées dans les communes-io qui simplifient davantage le processus.

http: // communications .apache.org / approprié / Commons-io / APIDOCS / ORG / APACHE / Commons / io / FileUtils.html


0 commentaires

4
votes

Comme l'autre mentionné, vous ne devriez pas faire cela pour une simple gestion de fichiers. Mais pour l'avoir mentionné: l'API Java a une classe appelée Runtime , qui permet aux appels système ... Par exemple:

Runtime.getRuntime().exec("some_command");


0 commentaires

3
votes

Pour la référence des personnes trébuchant sur cette question et se demandant pourquoi runtime.getruntime (). EXED ("MKDIR FOO") ne fonctionne pas même lors de l'intégration de l'environnement selon la réponse de Chris Dennett, la La raison la plus probable est que vous n'avez pas de programme appelé "mkdir" sur votre système. Alors que la plupart des systèmes de type UNIX ont un programme de ce nom, il n'est pas absolument nécessaire pour eux d'en avoir un, et Windows n'en a pas un, car dans les deux cas, la coque interprète cette commande elle-même, plutôt que de la transmettre à un Programme externe.

Pour le faire fonctionner, essayez ... EXEC ("CMD / C MKDIR FOO") Pour NT-Family Windows (ou "Commande / C MKDIR FOO" Pour Windows 95 Famille), ou EXEC ("SH -C \" MKDIR FOO \ "") pour UNIX.

Le fait qu'il n'y ait pas de manière indépendante de la plate-forme de faire cela est une autre raison de préférer les API Java pour effectuer la tâche.


0 commentaires

0
votes

Salut accepte le fait de ne pas être une plate-forme indépendante mais simplement pour tester une application, je devais l'utiliser. La solution dans mon cas pour le Runtime.getrontime (). EXEC ("MY_COMMAND_NAME"); pour ne pas travailler était que je devais donner le chemin complet à l'endroit où le fichier lot / sh / exécutable était IE:

runtime.getrruntime (). EXED ("/ D / TEMP / BIN / MYBATFILE");


0 commentaires

0
votes

Méthode makedirectory -

public boolean delete()
true if and only if the file or directory is successfully deleted; false otherwise


0 commentaires