2009-01-19 6 views
2

Cela peut sembler une question stupide. Où se trouvent les fichiers de classe principale de Sun, tels que Button.class, situés dans le dossier d'installation du JDK C:\Program Files\Java\jdk1.5.0_12?Où se trouvent les fichiers de classe dans le dossier JDK?

Ou les fichiers de classe se trouvent-ils dans le dossier C:\Program Files\Java\jre1.5.0_12?

Répondre

3

Ils sont répartis entre plusieurs bocaux. Il semble que Button soit dans jre/lib/rt.jar.

+0

Il semble qu'elle a JDK et JRE installés, et le JDK comprend un JRE, donc jre/lib/rt.jar est ambigu – Uri

2

Les fichiers de classe résident réellement en tant que fichiers jar dans la distribution Java utilisée. La plupart des fichiers sont dans rt.jar (runtime).

La plupart des machines de développement ont en fait deux formes de Java installées. Le JDK (que vous utiliseriez souvent lors du développement et inclut le compilateur), et le JRE qui est utilisé par les applications Java téléchargées, et souvent votre navigateur Web. Ce sont généralement deux distributions indépendantes qui ne se connaissent pas. Donc, la réponse à votre question est malheureusement "en fonction de ce que vous faites". Pour aggraver les choses, le JDK peut inclure sa propre copie du JRE ...

Ceci est l'une des sources de l'enfer soi-disant classpath, car on ne sait pas toujours ce que vous utilisez quand vous courez un programme Java.

Si vous exécutez java à partir de la ligne de commande, vous pouvez parfois détecter la version exacte utilisée.

Si vous utilisez Eclipse, vous pouvez choisir la version du JDK avec lequel vous travaillez.

+0

Juste pour clarifier, nondeveloper machines ont souvent, mais pas JRE JDK. – Uri

0

Sur les deux.

Ce sont deux installations JVM différentes. On a utilisé pour compiler (JDK signifie Java Development Kit) et l'autre est l'environnement java machine qui la plupart des clients ont (JRE est synonyme de Java Runtime Environment)

Look sur l'un de ces deux pour un fichier nommé:

rt.jar 

Celui où réside le noyau de la plate-forme.

0

Vous pouvez vérifier vous-même pour n'importe quelle classe grâce à la réflexion.

Par exemple, où puis-je trouver ma classe String située dans le classpath? facile

URL url = String.class.getResource("String.class"); 
System.out.println(url); 
Questions connexes