Comment utiliser mkdir et rmdir commandes dans un programme java
Je veux utiliser le système de commandes comme mkdir
et rmdir
lors de l'exécution d'un programme java.
Comment puis-je le faire?
Vous devez vous connecter pour publier un commentaire.
Pourquoi voulez-vous utiliser la ligne de commande? Pour info, il y a intégré indépendant de la plate-
File
classes.http://www.exampledepot.com/egs/java.io/deletefile.html
http://www.roseindia.net/java/beginners/java-create-directory.shtml
Mettre à jour l'annuaire:
Supprimer le répertoire:
"nouveau Fichier" ici, c'est un peu un abus de langage, il n'est pas réellement de la création du répertoire ou un fichier. C'est la création d'un Java des ressources crochet qui permet d'interroger ou de faire fonctionner sur un système de fichier en cours de ressources, ou en créer un nouveau à votre demande. Sinon, utilisez
Runtime.getRuntime().exec("command line here")
pour l'utilisation des opérations de ligne de commande (pas conseillé!!).Edit: réglé le problème de la question de l'affiche a été d'avoir:
Remarque l'insertion de
envp
dans leexec(..)
appel de la méthode, qui est essentiellement laPATH
variable de l'environnement.Que les autres mentionnés, vous ne devriez pas faire cela pour la simple gestion de fichiers. Mais de l'avoir mentionné: L'API Java dispose d'une classe appelée Runtime, qui permet des appels système... par exemple:
Le mieux est de ne pas, mais plutôt de trouver la pure Java API de fonction qui le fait. C'est plus propre, plus facile à comprendre et beaucoup moins sujettes à erreur. C'est aussi la seule façon de faire de Java qui est d'écrire une fois, exécuter partout. Une fois que vous appelez des commandes du shell, vous êtes lié à celui de shell.
Dans votre cas, vous êtes à la recherche pour le java.io.Fichier de classe, et plus précisément à la mkdir et supprimer méthodes.
De référence de gens d'achoppement sur cette question et vous demandez-vous pourquoi
Runtime.getRuntime().exec("mkdir foo")
ne fonctionne pas même lorsque l'intégration de l'environnement comme par Chris Dennett réponse, la raison la plus probable est que vous n'avez pas un programme appelé "mkdir" sur votre système. Alors que la plupart des systèmes Unix ont un programme de ce nom, il n'est pas absolument nécessaire pour eux d'avoir un, et Windows n'en a pas, parce que dans les deux cas, le shell interprète cette commande lui-même, plutôt que de passer à un programme externe.Pour le faire fonctionner, essayer ...
exec ("cmd /c mkdir foo")
pour le NT-de la famille Windows (ou"command /c mkdir foo"
pour Windows 95 de la famille), ouexec ("sh -c \"mkdir foo\"")
pour Unix.Le fait qu'il n'est pas indépendant de la plate-façon de le faire c'est encore une autre raison de préférer les Api Java pour la réalisation de la tâche.
Il y a des méthodes pour cela dans l'API Java, et bien enveloppé implémentations de commons-io qui simplifient le processus.
http://commons.apache.org/proper/commons-io/apidocs/org/apache/commons/io/FileUtils.html
Salut d'Accord sur le fait de pas été indépendant de la plateforme, mais juste pour le test d'une application que j'ai eu à l'utiliser.
La solution dans mon cas pour l'
Moment de l'exécution.getRuntime().exec("my_command_name") ;
pour ne pas travailler a j'ai dû donner le chemin complet vers le lot/sh/fichier exécutable a été
c'est à dire:
De l'exécution.getRuntime().exec("/d/temp/bin/mybatfile");
makedirectory méthode -
méthode delete -
De plus, référez-vous ci-dessous des liens -
https://docs.oracle.com/javase/8/docs/api/java/io/File.html
http://www.flowerbrackets.com/create-directory-java-program/