IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Execute command linux


Sujet :

JavaScript

  1. #1
    Membre confirmé
    Inscrit en
    Août 2006
    Messages
    185
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 185
    Par défaut Execute command linux
    bonjour a tous,
    j'ai un problème de compatibilité : j'ai créer une page html qui est éxécutée en local sur Linux et sur Windows. Cette page doit éxecuter une commande. Sous windows aucun problème mais sous linux je n'arrive pas à executer cette commande. Voila mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    if (navigator.platform == 'Win32')
    {
    	// Windows
    	var shell = new ActiveXObject("WScript.Shell");
    	shell.run(command);
    }
    else
    {
    	// Linux
    	document.write(navigator.platform);
    }
    Quelqu'un sait le code js pour éxecuter une commande sous linux?? ls par exemple... merci d'avance

  2. #2
    Membre chevronné Avatar de rberthou
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    612
    Détails du profil
    Informations personnelles :
    Âge : 61
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 612
    Par défaut
    Cela n'est à mon avis pas possible (et c'est normal).

    De plus même sous Windows cela fonctionne qu'avec IE et en acceptant toutes les alertes de sécurité.

  3. #3
    Membre confirmé
    Inscrit en
    Août 2006
    Messages
    185
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 185
    Par défaut
    Oui je sais... mais sous linux pas possible?? Enfaite cette page html doit pouvoir etre executée sur linux et windows en local... elle doit pouvoir ecrire dans un fichier texte et executer une commande... Y'a-t-il une autre solution que le JavaScript pour faire cela? Qui soit compatible pour les 2?

  4. #4
    Membre chevronné Avatar de rberthou
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    612
    Détails du profil
    Informations personnelles :
    Âge : 61
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 612
    Par défaut
    Tu peux essayer de passer par une applet signer, cela doit pouvoir fonctionner sur les deux OS et sur Firefox également.

  5. #5
    Membre confirmé
    Inscrit en
    Août 2006
    Messages
    185
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 185
    Par défaut
    T'as un exemple? définition d'un applet signet? Sous JavaScript?

  6. #6
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    non java pas javascript ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  7. #7
    Membre chevronné Avatar de rberthou
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    612
    Détails du profil
    Informations personnelles :
    Âge : 61
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 612

  8. #8
    Membre confirmé
    Inscrit en
    Août 2006
    Messages
    185
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 185
    Par défaut
    bon quelques heures de galère j'ai réussi a executer des fonctions java depuis ma page html. Mais maintenant il me fai des exception comme quoi il n'as pas le droit d'écrire le fichier ou d'executer le programme... En le compilant depuis eclipse il me fais sa très bien mais en passant depuis html j'ai des exception de type access denied.
    voila le code java :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
     
    import java.applet.*; 
    import java.awt.*;
    import java.io.*;
    import java.lang.Runtime;
     
    public class FunctionHTML extends Applet {
        Label  helloLabel = new Label ("Bonjour, vous me voyez ?");  
        // Méthode appelée par le navigateur lorsque l'applet est chargée  
     
        public void init (){
     
         } 
        public int WriteFile(String DirFile, String WriteLineString, boolean EraseOld) throws IOException{
        	try { 
        		PrintWriter OutputFile = new PrintWriter(new FileWriter(DirFile, EraseOld));	
        		OutputFile.println(WriteLineString); 		
        		OutputFile.close();
        		return 0;
         	} catch (IOException e) { return -1; }    
        }
        public int ExecuteCmd(String DirCmd) throws IOException{
        	try { 
        		Runtime.getRuntime().exec(DirCmd); 
        		return 0; 
        	} catch (IOException e) {  return -1; }     	
    	}
    }
    et html :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <APPLET codebase="c:\" code="FunctionHTML.class" width="500" height="200" NAME="FunctionJava"></APPLET>	
    		<script type="text/javascript">
    			document.Formulaire.Execute1.onclick = function()	{	document.FunctionJava.ExecuteCmd('cmd'); }
    		</script>
    Y'a-t-il une solution?

    Une autre question : J'ai une application Java qui n'as pas de "Extends Applets" cela signifie que je ne peux pas l'appelée depuis une page html? la page html est en local et j'aimerai ouvrir cette application Java depuis cette page.

  9. #9
    Membre confirmé
    Inscrit en
    Août 2006
    Messages
    185
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 185
    Par défaut
    Après quelques test encore, j'ai signer mon .jar... Quand j'ouvre la fonction depuis une page html il me demande si j'accept de certificate, je répond oui et après il me refait un access denied... La j'y comprend vraiment vraiment rien ! Depuis Eclipse les fichiers se créer correctement, depuis la commande "java monfichierjava.class" j'ai un access denied et depuis html aussi! Même si je met un certificat et je l'accept! Je suis en local, il doit bien y'avoir une solution

  10. #10
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    il faut l'accepter au moins une fois pour qu'il soit reconnu non ?

    Mais je ne pense pas que la solution soit coté javascript ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  11. #11
    Membre confirmé
    Inscrit en
    Août 2006
    Messages
    185
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 185
    Par défaut
    Le certificat? Mais je l'ai accepter a l'ouverture de la fonction.... Je n'utilise pa JavaScript appart pour executer la fonction Java.... Cela peut coser problème?

  12. #12
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    Donc comme je le disais, cela ne provient pas de javascript mais du niveau de sécurité du browser par rapport aux applets java...
    Et par conséquant je ne pense pas que javascript puisse résoudre ce problème de quelque manière que ce soit .
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  13. #13
    Membre confirmé
    Inscrit en
    Août 2006
    Messages
    185
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 185
    Par défaut
    J'ai déjà trouver une erreur... eclipse me fesait un .jar avec un manifest vide... J'ai créer un .jar manuellement et il fonctionne a l'execution sous windows... Reste plus qu'à l'intégrer a ma page html... Je viens de tester en vitesse, ya toujours une erreur mais je n'ai pas créer de certificat... Juste une question html :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <applet archive="archive1.jar" NAME="FunctionJava" code="FunctionHTMLd.class"></applet>
    cela me initialise ma class pour utilisation dans ma page html. Mais le problème est que cela me met aussi un carré Java au débu de ma page html! Il n'y a pas d'interface graphique, ma class Java n'as que des fonctions d'écriture, lecture. Comment appeller ma class Java sans mode graphique??

  14. #14
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <applet archive="archive1.jar" NAME="FunctionJava" code="FunctionHTMLd.class" style="visibility:hidden;"></applet>
    ??
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  15. #15
    Membre confirmé
    Inscrit en
    Août 2006
    Messages
    185
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 185
    Par défaut
    No, toujours un block occupée dans mon html. Dans ma class java dans mon Init() j'ai éexecuter une des fonctions d'écriture et a l'ouverture de l'applet le fichier se créer correctement en me demandant d'accepter le certificat. Après quand j'éxecute la fonction depuis JavaScript en cliquant sur le bouton il me dit access denied! Impressionnant!
    Applet HTML :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    	<applet archive="jExecWrite.jar" NAME="jExecWrite" code="InitFunction.class" width="0" height="0" style="visibility:hidden;">
    		Java n'est pas initialisé ou n'est pas installé... Veuillez régler le problème
    	</applet>

    Voila mon code JavaScript :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    	document.Formulaire.Execute1.onclick = function()	{	document.jExecWrite.ExecuteCmd("c:\\windows\\system32\\charmap.exe"); }

  16. #16
    Membre confirmé
    Inscrit en
    Août 2006
    Messages
    185
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 185
    Par défaut
    Bon j'ai enfin réussi a executer depuis windows je vais tester tout sa sous unix, je vous donne le code Java... Enfaite il faut créer un thread depuis le Init qui a tout les droits d'après ce que j'ai conclu et compris... Voila mon code Java... Les deux fonction ExecuteCmd et WriteFile permettent d'écrire et d'éxecuter une commande...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
     
    import java.io.*;
    import java.lang.Runtime;
    import java.applet.*;
     
    public class InitFunction extends Applet {
    	private static final long serialVersionUID = 1L;
     
    	private String DirCmd;
        private String DirFile, WriteLineString;
        boolean EraseOld;
     
        private static Object threadLockExec = new Object();
        private static Object threadLockWrite = new Object();
     
    	public void init (){
    		( new ExecuteCmdThread() ).start();
    		( new WriteFileThread() ).start();
    		//ExecuteCmd("c:\\windows\\system32\\charmap.exe");
    		//WriteFile("c:\\tt.txt", "blabla", true);
        }
     
    	class ExecuteCmdThread extends Thread {
    		public void run() {
    			synchronized(threadLockExec)
    			{
    				while(true)
    				{
    					try
    					{
    						threadLockExec.wait();
    						Runtime.getRuntime().exec(DirCmd);
    					}
    					catch( Exception ex )
    					{
    						System.out.println( "Exception in ExecuteCmd, " + ex.getMessage() );
    					}						
    				}
    			}
    		}
    	}
     
    	class WriteFileThread extends Thread {
    		public void run() {
    			synchronized(threadLockWrite)
    			{
    				while(true)
    				{
    					try
    					{
    						threadLockWrite.wait();
    			    		PrintWriter OutputFile = new PrintWriter(new FileWriter(DirFile, !EraseOld));	
    			    		OutputFile.println(WriteLineString); 		
    			    		OutputFile.close();
    					}
    					catch( Exception ex )
    					{
    						System.out.println( "Exception in WriteFile, " + ex.getMessage() );
    					}						
    				}
    			}
    		}
    	}
     
        public int WriteFile(String DirFile, String WriteLineString, boolean EraseOld) {
        	try 
        	{ 
        		synchronized( threadLockWrite )
        		{
            	    this.DirFile = DirFile;
            	    this.WriteLineString = WriteLineString;
            	    this.EraseOld = EraseOld;	
            	    threadLockWrite.notifyAll();
        		}
        		return 0;
        	}
        	catch( Exception ex )
        	{
        		System.out.println( "Exception in Write File, " + ex.getMessage() );
        		return -1;
        	}   
        }
     
        public int ExecuteCmd(String cmd) {
        	try
        	{
            	synchronized( threadLockExec )
            	{
            		DirCmd = cmd;
            		threadLockExec.notifyAll();
            	}	
        		return 0;
        	}
    		catch( Exception ex )
    		{
    			System.out.println( "Exception in Execute Command, " + ex.getMessage() );
    			return -1;
    		}    	
    	}	
    }
    Il me reste plus que deux problèmes : celui d'affichage de la zone Java sur mon html et celui de quand je ferme la fenetre html java ne se ferme pas automatiquement et génére une erreur et m'utilise 100% du CPU! il faut que je mette un destroy dans ma class java? et dans l'html? un close de l'applet?

Discussions similaires

  1. execution commande linux
    Par bapfuror dans le forum Entrée/Sortie
    Réponses: 4
    Dernier message: 02/04/2008, 12h22
  2. [Système] executer une commande linux
    Par kirbs dans le forum Langage
    Réponses: 7
    Dernier message: 08/12/2005, 09h40
  3. Réponses: 6
    Dernier message: 23/11/2005, 14h24
  4. Executer une commande linux distante
    Par g-rom3 dans le forum Linux
    Réponses: 11
    Dernier message: 06/11/2005, 19h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo