web-dev-qa-db-fra.com

Comment exécuter un programme Java avec plusieurs classes de cmd?

Pour le moment, je cherche un autre moyen d’exécuter mon programme Java en ligne de commande, autre que de l’ajouter à un fichier JAR. Mon programme comprend le nombre de cours suivant:

Le nom du fichier de programme - MyProgram
Classe principale - Serveur1
second class - Client Handler
Nom du paquet - Articles
3e classe - Utilisateur1
4ème classe - Utilisateur2

La classe principale et le gestionnaire de client à côté du paquet devront d'abord s'exécuter pour que l'utilisateur 1 et l'utilisateur 2 puissent s'exécuter, car ce sont des classes clientes et dépendent de la classe principale.

7
user3064068
javac *.Java // compliles all Java files in the dir

Java MyClass // runs the particular file

Si une classe dépend d'une autre classe qui n'a pas encore été compilée, le programme ne s'exécutera pas. Donc, vous devriez compiler tous les fichiers avant d'essayer d'exécuter le programme en fonction d'autres fichiers.

Si vos fichiers sont empaquetés, alors quelque chose comme ceci

javac com.mypackage/.*Java

Java com.mypackage.MyClass
13
Paul Samsotha

Une fois votre code compilé, lancez-le à partir du niveau supérieur:

Java -cp . com.myprogram.MyProgram

L'ordre que vous décrivez n'a pas d'importance. Ils sont tous compilés ensemble et MyProgram fera référence à Server1, etc.

3
Vidya

C’est peut-être plus que ce que vous voulez aborder maintenant, mais vous pouvez envisager un système de construction tel que Maven . Pour commencer à essayer; Comment puis-je faire mon premier projet Maven?

Vous pouvez l’utiliser pour prédéfinir l’ordre de construction et, si vous le souhaitez, créer un fichier jar pour vous (ou non).

2
Joshua Wilson

vous devez vous assurer que vous ajoutez l'emplacement de votre fichier .class à votre chemin d'accès aux classes. Donc, si c'est dans le dossier actuel, alors ajoutez. à votre chemin de classe. Notez que le séparateur de chemin de classe windows est un point-virgule ie;

javac -cp . PackageName/*.Java
java -cp . PackageName/ClassName_Having_main

Exemple. Supposons que vous ayez ce qui suit

  • Paquet nommé: com.test 

  • Nom de la classe: Bonjour 

  • Le fichier Java est situé dans "src/com/test/Hello.Java"

puis, depuis l'annuaire extérieur:

$ cd src
$ javac -cp . com/test/*.Java
$ Java -cp . com/test/Hello

Notez que vous pouvez ajouter -d pour spécifier le répertoire de sortie de vos fichiers de classe lors de la compilation. 

$ javac -d output_directory -cp . com/test/Hello

Dans Windows, la même chose fonctionnera aussi, j'ai déjà essayé

Découvrez this sur le site officiel Oracle 

2
msoliman

On dirait que vous aurez juste besoin d'ouvrir plusieurs invites de commande, de les compiler et de les exécuter dans l'ordre dans lequel vous en avez besoin. Faites-moi savoir si j'ai mal compris la question.

0
McProgramming

POUR EXÉCUTER DEUX PROGRAMMES Java DÉPENDANT TOUT AUTRE . (Par exemple: deux fichiers Complex.Java et Solution.Java, où Soultion.Java dépend de Complex.Java . So Complex.Java doit être compilé en premier et ensuite, le fichier de classe de Complex doit être lié à Solution.Java, puis Solution.class doit être exécuté pour Output.) REFER L'IMAGE AVEC SYNTAXE.

ÉTAPE 1: 

COMPILE Complex.Java

compilation de Complex.Java

syntaxe - javac -d [path_where_class_File_File_File] [chemin_du_fichier_fichier\nom_fichier.Java]

(Solution.Java et Complex.Java sont liés. Ie.Solution.Java appelle Complex.Java)

ÉTAPE 2: 

COMPILE Solution.Java

compiler Solution.Java avec lier Complex.class avec lier Complex.class (créé ci-dessus à l'étape 1) 

syntaxe - javac -d [path_where_class_class_File_File] -cp [path_of_the_first_class_class_created] [path_of_the_file\filename.Java]

ÉTAPE 3:

EXECUTER LA Solution.class

Java -cp [path_of_second_class_cleated_created] [Nom_classe]

(créé à l'étape 3)  enter image description here

0
Ashwant Manikoth