web-dev-qa-db-fra.com

Appel de la méthode principale Java avec les paramètres d'Eclipse

Pendant le développement (et pour le débogage), il est très utile d’exécuter une méthode 'méthode publique publique statique (String [] argv)} de Java directement à partir d’Eclipse (à l’aide du menu contextuel Exécuter en tant que).

Existe-t-il un moyen aussi rapide de spécifier les paramètres de ligne de commande pour l'exécution? Ce que je fais maintenant est d'aller dans la "boîte de dialogue Exécuter", cliquez sur les différents paramètres pour accéder à l'onglet où je peux spécifier VM et programme arguments et entrez-les là. Trop d’étapes, plus je ne veux pas mélanger les paramètres de configuration d’exécution plus permanents avec les paramètres d’appel uniques . Ce que je veux à la place est de cocher une case quelque part (ou d’avoir un élément de menu séparé "Exécuter". en tant qu'application Java avec la ligne de commande "), puis vous êtes invité à entrer la ligne de commande à chaque fois (avec un historique Nice).

31
Thilo

Cette réponse est basée sur Eclipse 3.4, mais devrait fonctionner dans les anciennes versions d’Eclipse.

Lorsque vous sélectionnez Exécuter en tant que ..., accédez aux configurations d'exécution.

Dans l'onglet Arguments de votre configuration d'exécution Java, configurez la variable $ {string_Prompt} afin qu'elle s'affiche (vous pouvez cliquer sur les variables pour l'obtenir ou la copier pour la définir directement).

Chaque fois que vous utilisez cette configuration d'exécution (nommez-la bien afin de l'avoir pour plus tard), les arguments de la ligne de commande vous seront demandés.

50
MetroidFan2002

Uri est faux, il existe un moyen d'ajouter directement des paramètres à la méthode principale dans Eclipse, mais ces paramètres ne seront pas très flexibles (certains paramètres dynamiques sont autorisés). Voici ce que vous devez faire:

  1. Exécutez votre classe une fois telle quelle.
  2. Aller au Run -> Run configurations...
  3. Dans la liste de gauche, sélectionnez votre classe dans la liste sous Java Application ou en tapant son nom dans la zone de filtre.
  4. Sélectionnez l'onglet Arguments et écrivez vos arguments dans la boîte Program arguments. Au cas où ce ne serait pas clair, ils sont séparés par des espaces, donc "a b c" (sans guillemets) signifie que vous transmettriez les arguments a, b et c à votre programme.
  5. Exécutez votre classe à nouveau, comme à l'étape 1.

Je recommande toutefois d'utiliser la classe JUnit/wrapper comme Uri l'a dit, car cela vous permet de mieux contrôler les paramètres réels que de le faire.

15
Esko

Autant que je sache, il n’ya pas de mécanisme intégré dans Eclipse pour cela.

Le plus proche que vous puissiez obtenir est de créer un wrapper qui vous invite à entrer ces valeurs et appelle le principal (codé en dur). Vous obtenez alors votre historique d'exécution tant que vous n'effacez pas les processus terminés. Il existe deux variantes: utiliser JUNit ou utiliser une injection ou un paramètre afin que votre wrapper se connecte toujours à la classe correcte pour sa classe principale.

2
Uri

Je ne suis pas sûr de vos utilisations, mais je trouve pratique de ne pas utiliser plus de plusieurs paramètres de ligne de commande. Ainsi, chacun de ces scénarios reçoit une configuration d'exécution et je sélectionne celui que je veux dans l'historique d'exécution.

La fonctionnalité que vous suggérez semble un peu exagérée, IMO.

1
Yuval Adam

Si vous avez des espaces dans votre argument de chaîne, procédez comme suit:

Exécuter> Configurations exécutées> Application Java> Arguments> Arguments du programme

  1. Placez votre argument de chaîne avec des guillemets
  2. Séparez chaque argument par un espace ou une nouvelle ligne

Une autre idée:

Placez tous vos paramètres dans un fichier de propriétés (un paramètre = une propriété de ce fichier), puis dans votre méthode principale, chargez ce fichier (à l'aide de Properties.load(*fileInputStream*)) . Si vous souhaitez modifier un argument, vous devez simplement: éditez votre fichier args.properties et lancez votre application sans autre étape ...

Bien sûr, ceci est uniquement à des fins de développement, mais peut être très utile si vous devez changer souvent vos arguments ...

0
Romain Linsolas