Effectuer une comande DOS en JAVA

baRALai -  
Canard007 Messages postés 5936 Statut Contributeur -
Bsr tt le monde, je souhaiterais effectuer une comande DOS (genre ouvrir un document ex: C:/image.jpg) en JAVA. (et non en C++ car en fait je dois le faire en HTML/JSP). L'API Java m'a pas vraiment aider (Outputstream m'a permis d'ouvrir des documents textes UTF mais ca me sert po à grand chose :( ). Bref si qq'un peut m'aider...
Merci de votre réponse.
A voir également:

5 réponses

blurk Messages postés 487 Statut Membre 160
 
salut,
normalement, une condition imposée par Sun pour le langage java,
c'est de ne pas toucher au système d'exploitation(sauf si lui l'autorise). Il ya eu un procès entre Sun et micro$oft à ce propos. Si internet explorer est bourré de failles, c'est qu'à la base il n'a pas été isolé complètement du système d'exploitation.
Il y a des commandes pour tranférer des fichiers, pour le reste,
normalement rien ne devrait sortir du navigateur. (normalement)
Il y a u truc aussi, rien ne dit qu'un navigateur est sous windows, compatible dos ou pas, sous mac os, sous linux, donc les commandes dos c'est présumer que système de l'ordinateur client accepte le dos, ce qui n'est pas possible.
0
Utilisateur anonyme
 
Mille axcuses, mais avec un objet RunTime ou quelquechose comme ca, c'est possible... Il faut chercher dans l'API java.
Tiens, va voir la :
http://java.sun.com/j2se/1.4.2/docs/api/
et cherche "runtime", le 2°.
Tchôô

Fat_Cartman,
Parce que je le vaux bien...
0
JSS Messages postés 3745 Statut Contributeur 32
 
Salut,

Si ton objectif est d'ouvrir des images regardes le package java.awt.image ou encore mieu les JAI Java Advanced Image.

Bonne chance.
J'espere que ca pourra t'aider.

JSS
0
augustin
 
salut
j'aime bcq informatique mais j'ai de probleme sur tout du cote comande dos si vous pouvez me les donne ça me fera plaisir merci
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Canard007 Messages postés 5936 Statut Contributeur 215
 
Salut,

Bon la seule solution pour toucher a la couche OS de windows par du java c'est d'utiliser JNI java native interface...
tu te fait une petite dll en c/c++ que tu placera dans ton projet java..ensuite tu pourra appeller dans ton java ttes les fonctions de la dll...bon ya quelques regles a respecter mais si tu suit bien le tutorial suivant:
http://perso.wanadoo.fr/jm.doudoux/java/tutorial/chap029.htm
tu devrai arriver à tes fin sans probleme...

j suis meme sympa je te fait un copier coller du code en c qui permet d executer n importe quelle commande en passant les parametres qu il fo... :p (le tout s appuis sur l API win32 de windows apres (normal c est le but tu me dira :p))
#include <jni.h>
#include <stdio.h>
#include <windows.h>
#include "JniWin32.h"


JNIEXPORT jint JNICALL Java_appliserveur_util_JniWin32_GetFreeSpace
  (JNIEnv *env, jobject obj, jstring chaine1)
{
	
   	//declaration des variables

    unsigned long Secteurs_Par_Cluster, Bytes_Par_Secteurs, Cluster_libre, Total_Cluster; /* stockage des infos */
	unsigned long espace_libre, espace_utilise, espace_total;    /* permettra de traiter les infos */
	
	//on recupere les parametres au format reconnu par le compilateur
    const char *lecteur = (*env)->GetStringUTFChars(env, chaine1, 0);

	GetDiskFreeSpace(lecteur,&Secteurs_Par_Cluster,&Bytes_Par_Secteurs,&Cluster_libre,&Total_Cluster);

	espace_libre = (((Cluster_libre * Secteurs_Par_Cluster)/1024)*Bytes_Par_Secteurs)/1024;
	espace_total = (((Total_Cluster * Secteurs_Par_Cluster)/1024)*Bytes_Par_Secteurs)/1024;
	espace_utilise = espace_total - espace_libre;
    
    
    //on renvoie le resultat
    return espace_libre;
}

Kdo

Bon en lisant le tuto tu comprendra les declaration est les adaptation des parametres..mais dans l ensemble je te le dit c est tres simple...juste plein de fichier partout...

Apres tu te fait une applet java qui appelera ta classe java qui regroupe toutes les fonction JNI....

bon courage...
0