2010-10-11 15 views
1

Je suis nouveau sur Java et IntelliJ et je fais juste un simple programme "hello world". IntelliJ a environ 10 bibliothèques de JDK 1.6 ajoutées à mon projet, même si je n'importe pas dans mes classes ce qui semble en avoir besoin. J'ai créé un nouveau projet à partir de zéro.Pourquoi IntelliJ importe-t-il des bibliothèques supplémentaires de JDK 1.6 pour un simple programme de bonjour?

Certaines des bibliothèques sont alt-rt.jar, charsets.jar, deploy.jar, dnsns.jar, javaws.jar, jce.jar, jsse.jar, localedata.jar, etc.

Can Quelqu'un explique-t-il pourquoi ces bibliothèques ont été ajoutées? Puis-je supprimer ces bibliothèques des paramètres du module/SDK sans effet négatif?

Répondre

2

Ils seront dans le classpath de toute façon car ils font partie de la bibliothèque standard. Je ne suis pas sûr de ce qui se passera si vous les supprimez, mais vous n'avez certainement pas besoin de le faire.

+0

Je suis un peu confus ici. Si je devais créer un HelloWorld.java en utilisant le bloc-notes et le compiler avec javac depuis la ligne de commande, je n'aurais pas ajouté tous ces chemins de classes supplémentaires. Ce serait javac HelloWorld.java et java HelloWorld mais Intellij ajoute 10 choses au classpath. Sûrement, ceux-ci ne sont pas toujours dans le classpath parce qu'ils font partie de la bibliothèque standard si je devais utiliser le bloc-notes et compiler de la ligne de commande? – TJEnt

+1

yes - ils sont dans le classpath - ils font partie du runtime Java et sont implicitement chargés. IntelliJ rend juste ces bibliothèques référencées visibles. –

+0

Merci pour l'explication kevin. Si je pouvais, je voudrais upvote votre commentaire, mais je suppose que je suis trop nouveau. – TJEnt

0

Ces bibliothèques ne sont pas importées dans votre projet, intelliJ vient de les analyser pour voir quelles étaient les classes accessibles (pour l'auto-complétion) avec le classpath par défaut.

Ils ne seront pas empaquetés avec votre projet. De plus, comme votre JDK (ou tout SDK pour ce qu'il vaut) est défini pour intelliJ et non pour votre projet uniquement, chaque projet que vous créerez dans le futur utilisera les données déjà analysées de votre JDK.