2017-09-20 2 views
1

J'ai un dossier Java src dans lequel je stocke mes fichiers .java. Je les compile ensuite en utilisant Terminal et finit par obtenir des fichiers .class dans le même répertoire. Cela ne me dérange pas nécessairement, mais je n'ai jamais vu cela être fait professionnellement.Où stockez-vous habituellement les fichiers .class Java?

Par convention professionnelle (s'il en existe une), dans quel dossier du répertoire d'un projet devez-vous stocker les fichiers .class compilés?

+0

Habituellement? "bin" ou "construire", puis dans un récipient - un pot ou une guerre ou une lime d'oreille. –

+2

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. –

+0

Profressionnellement, vous utilisez un IDE et/ou un outil de construction comme Maven/Gradle, qui les place dans un autre dossier –

Répondre

4

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.

+0

Cela a été extrêmement utile, merci. –