Si vous n'êtes pas familier avec cela, vous devriez regarder dans le sujet du Java classpath. Je me souviens d'avoir trouvé cela déroutant quand j'ai commencé à programmer en Java.
Il existe un chemin de recherche défini pour les fichiers .class en Java; lorsque vous exécutez java -cp blahblahblah
qui définit le chemin de classe. java -jar blahblahblah.jar
ouvre un JAR file et le manifeste du fichier .jar peut dicter le chemin de classe. Le chemin de classe par défaut est dans le répertoire en cours.
Généralement, vous placez des classes Java dans des packages dans une structure de répertoires hiérarchique dans le système de fichiers, auquel cas le compilateur Java mettra également les fichiers .class
dans une structure correspondante.
Si vous exécutez javac
à partir de la ligne de commande, le -d
argument spécifie le répertoire racine de destination pour les fichiers .class
.
Un projet typique ressemble à ceci, en supposant que votre paquet est appelé com.example.foo
et il contient Foo.java et Bar.java:
project_dir/
src/
com/
example/
foo/
Foo.java
Bar.java
bin/
com/
example
foo/
Foo.class
Bar.class
Le compilateur java sera exécuté avec -d bin
comme répertoire de destination, et créera les fichiers .class
correspondant aux fichiers .java
. Mais la destination ne doit pas être appelée bin
; vous pouvez l'appeler Freddy
ou dumbass
si vous le souhaitez, bien que cela puisse probablement confondre les gens habitués à bin
ou build
.
La plupart du temps lors de la construction d'un programme Java ou d'une bibliothèque, les fichiers .class
ne sont qu'une étape temporaire vers la création d'un fichier .jar (essentiellement un format .zip avec une extension .jar
, contenant les fichiers .class et un peu bit de métadonnées), et lorsque vous les exécutez, Java utilisera le fichier .jar si vous l'incluez dans le classpath.
Habituellement? "bin" ou "construire", puis dans un récipient - un pot ou une guerre ou une lime d'oreille. –
Il est à noter, désolé, que je suis un étudiant qui a à peine besoin des fichiers .class au-delà de les exécuter immédiatement après la compilation. Je ne leur demande pas d'être dans un fichier d'archives professionnel, mais était simplement curieux quant à la convention sur l'endroit où ils sont généralement stockés. –
Profressionnellement, vous utilisez un IDE et/ou un outil de construction comme Maven/Gradle, qui les place dans un autre dossier –