Cygwin n'est pas trouvé

bonjour a tous,
je veux exécuter un fichier .sh dans cygwin en java et il me donne de l'erreur suivant:
voici mon code
      Process process;
             String cmd[] = new String[3];
            cmd[0] = "C:\\cygwin\\bin\\mintty.exe -i /Cygwin-Terminal.ico -";
            cmd[1] = "-c";
            cmd[2] = "cd decoder && bash TEST.sh";
            try
            {
                process = Runtime.getRuntime().exec(cmd);
                  
                 process.waitFor();
                if(process.exitValue() == 0)
                {
                    JOptionPane.showMessageDialog(this,"execution reussi!");
                }
                else
                {
                    JOptionPane.showMessageDialog(this,"execution non reussi!");
            }
}
catch(Exception e)
{
System.out.println("Exception: "+ e.toString());
}

voici l'erreur
Exception: java.io.IOException: Cannot run program "C:\cygwin\bin\mintty.exe -i /Cygwin-Terminal.ico -": CreateProcess error=2, Le fichier spécifié est introuvable


il ne trouve pas C:\\cygwin\\bin\\mintty.exe -i /Cygwin-Terminal.ico - mais c'est bien le repertoire;est ce que quelqu'un peut me suggérer un idée?
merci
jayzman
EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI

Merci d'y penser dans tes prochains messages.

2 réponses

  1. Est-ce que le problème ne viendrait pas de l'icône ?
    Pour moi il faut spécifier son chemin absolu, là tu dis qu'elle est à la racine / de ton disque.

    Tu devrais tester avec -i C:\\cygwin\\Cygwin-Terminal.ico

    Désolé d'avoir répondu un peu tard.
    1. bonjour faseldi,
      pas de quoi,merci pour votre réponse,
      j'ai testé votre suggestion mais ça donne le même erreur,
    2. c'est icône que je veut lancé,il est sur le bureau mais le chemin d'emplacement est celle que j'ai mentionné dans mon code,mais je ne sais pas pourquoi il ne le trouve pas,est-ce-qu'il y a une erreur dans mon programme,peut être dans le tableau?

    3. Process process;
      String cmd = null;
      cmd = "C:\\cygwin\\bin\\mintty.exe -i /Cygwin-Terminal.ico -";
      try
      {
      process = Runtime.getRuntime().exec(cmd);

      process.waitFor();
      if(process.exitValue() == 0)
      {
      JOptionPane.showMessageDialog(this,"execution reussi!");
      }
      else
      {
      JOptionPane.showMessageDialog(this,"execution non reussi!");
      }
      }
      catch(Exception e)
      {
      System.out.println("Exception: "+ e.toString());
      }


      quand je fais comme ça il trouve mais quand je le fais dans le tableau pour exécuter autre chose il ne le trouve pas,
    4. J'ai toujours fais comme tu fais actuellement, à la fa_çon qui marche ! :p
    5. Ok,mais je veut l'automatisme du code,comme ça je compile automatiquement le commande que je veut lancé dans le rep decoder,est-ce-qu'il n'y a pas de moyen? :)
  2. quand je doit lancer ce genre de commande je cree un .bat a la racine de mon projet qui me sert de lanceur.

    en gros tu met C:\\cygwin\\bin\\mintty.exe -i /Cygwin-Terminal.ico -
    dans ton bat lance.bat et tu l'appel a partir de ton code java
    1. +1 Je vois que je suis pas le seul à utiliser cette technique :D ( enfin pas en java par contre :) )
    2. bonjour à vous et bonne année 2016
      merci pour vos réponse,
      ça a marché pour l’exécution mais pour le changement de répertoire et exécution de script,
      je veux entrer dans un nouveau répertoire et exécuter un script à partir de cet répertoire

      quand je lance le cygwin
      on a
      [~]$
      et je veut rentrer dans test
      [~/test]$
      et enfin je veut executer un script .sh ou .pl
      [~/test]$bash test.sh

      et je veut que ce sera fait par un seul bouton en java sans entrer manuellement le commande :),
      merci à vous

      jayzman