Arguments pour la fonction .Runtime ()
Nirdaven
Messages postés
3
Statut
Membre
-
KX Messages postés 19031 Statut Modérateur -
KX Messages postés 19031 Statut Modérateur -
Bonjour,
J'ai un énorme problème avec la fonction Runtime, comme l'indique le titre, mes arguments ne passent pas...
Voila mon code qui pose problème :
La fonction connexion.pl sert juste a dire si les identifiants sont en accords avec ceux présents dans une base de données. Or il s'avère que le runtime ainsi appelé ne prend pas en compte les arguments. J'ai cherché sur le net et on dit a chaque fois de faire :
or dans mon cas les doubles quotes desserviraient mes intentions...
j'ai essayé différentes façons :
- en enlevant "perl", et "connexion.pl " pour mettre "perl connexion.pl " (comme je m'y attendais, ça ne marche pas)
- en mettant des "+" au lieux des ",". Même constat que précédemment.
auriez-vous une idée de comment faire ?
J'ai un énorme problème avec la fonction Runtime, comme l'indique le titre, mes arguments ne passent pas...
Voila mon code qui pose problème :
String mdp = new String(fenetre.texte3.getPassword());
String login = fenetre.texte2.getText();
String mdp = new String(fenetre.texte3.getPassword());
String ligne;
Runtime rt = Runtime.getRuntime();
try {
Process process;
process = rt.exec(new String[] { "perl", "connexion.pl ", login, mdp });
System.out.println(bdd + login + mdp);
} catch (IOException ioe) {
System.out.println(ioe);
}
La fonction connexion.pl sert juste a dire si les identifiants sont en accords avec ceux présents dans une base de données. Or il s'avère que le runtime ainsi appelé ne prend pas en compte les arguments. J'ai cherché sur le net et on dit a chaque fois de faire :
Runtime runtime = Runtime.getRuntime();
runtime.exec(new String[] { "monappli", "param1", "param2" } );
or dans mon cas les doubles quotes desserviraient mes intentions...
j'ai essayé différentes façons :
- en enlevant "perl", et "connexion.pl " pour mettre "perl connexion.pl " (comme je m'y attendais, ça ne marche pas)
- en mettant des "+" au lieux des ",". Même constat que précédemment.
auriez-vous une idée de comment faire ?
A voir également:
- Arguments pour la fonction .Runtime ()
- Fonction si et - Guide
- Directx runtime - Télécharger - Pilotes & Matériel
- C++ runtime - Guide
- Java runtime environment - Télécharger - Langages
- Fonction miroir - Guide
1 réponse
Normalement, ton code devrait fonctionner et les espaces n'ont aucune incidence sur l'ordre des arguments, seuls la case du tableau indique l'ordre de l'élément.
Voici un exemple d'un programme "Test" qui s'appelle lui même :
Voici un exemple d'exécution :
Voici un exemple d'un programme "Test" qui s'appelle lui même :
import java.io.IOException;
import java.util.Scanner;
public class Test
{
public static void main(String[] args) throws IOException, InterruptedException
{
if (args.length==0)
{
Process p = Runtime.getRuntime().exec(new String[] {"java", "Test", "arg1", "arg2 arg3"});
System.out.println(p.waitFor());
Scanner out = new Scanner(p.getInputStream());
while (out.hasNextLine())
System.out.println(out.nextLine());
out.close();
Scanner err = new Scanner(p.getErrorStream());
while (err.hasNextLine())
System.out.println(err.nextLine());
err.close();
}
else
{
for (String arg : args)
System.out.println(arg);
}
}
}
Voici un exemple d'exécution :
$ java Test a b a b $ java Test 0 arg1 arg2 arg3