Chemins de classes dans lesEs [fermé]


Je passe en revue les fondamentaux de base en Java en ce moment. J'ai rencontré un sujet qui concerne classpath. Je suis confus quel est ce classpath?Comment diffèrent-ils avec le chemin? Comment sont-ils liés aux variables d'environnement?

Je développe des applications Java à l'aide d'Es depuis assez longtemps. Et tout semble être trop automatique et abstrait que parfois des choses de base comme celles-ci ne sont pas vues par un développeur, du moins dans ma partie. Je voudrais apprenez ces choses de base pour renforcer ma base dans le langage de programmation Java. Merci à l'avance!

Author: steven0529, 2014-02-24

1 answers

L'Un des inconvénients d'un IDE, c'est qu'il peut "couvrir" quelques rudiments de la langue en l'automatisant, et ensuite quand vous en avez besoin pour analyser sans IDE, vous obtenez un peu coincé comme il l'a toujours pris soin de divers éléments du programme pour vous. C'est donc certainement une bonne idée d'essayer de saisir les bases du langage afin que vous sachiez ce que l'E automatise pour vous.

Un chemin de classe est normalement comme il semble littéralement, un chemin vers les fichiers de classe utilisés par une application. La fonction principale derrière elle est de dire à la JVM où trouver certaines ressources dont elle a besoin. Par exemple, dans unE comme Eclipse, vous pouvez ajouter des jars externes pour référencer des bibliothèques tierces, et il prendra en charge le paramètre de chemin nécessaire. Si vous le faisiez via une ligne de commande, vous auriez besoin d'inclure un chemin de classe pour indiquer à la JVM où se trouvent les bibliothèques requises, d'une manière similaire à ce qui suit:

javac -cp "path/to/lib.jar" MyProgram.java //-cp is set classpath option

La raison pour laquelle vous n'avez pas besoin de le faire avec la bibliothèque 'core api' est en raison des variables d'environnement définies sur votre ordinateur. Les variables d'environnement sont utilisées par votre système d'exploitation comme voies stockées vers divers bits et bobs essentiels. Par exemple, dans mes variables d'environnement sous la variable Path, j'ai:

C:\Program Files\Java\jdk1.7.0_25\bin

Cela va dans un répertoire contenant les fichiers exécutables tels que java et javaw. Comment je "pense" que cela fonctionne (je n'ai pas de sources définitives sur ce bit), c'est que lorsque vous compilez / exécutez une application java en utilisant quelque chose comme:

java MyApplication or javac MyApplication.java

L'ordinateur vérifiera ses variables d'environnement à un moment donné à la recherche de ces exécutables, c'est pourquoi javac ne fonctionne pas tant que vous n'avez pas défini le chemin correct dans la section var de l'environnement. Une fois trouvé, il exécute les exécutables. Je m'attends à ce qu'il soit également capable de trouver l'api Java principale (rt.jar?) de cette voie ainsi.

La principale différence que je ressens est que Classpath est un argument fourni au moment de l'exécution / compilation pour ajouter des ressources supplémentaires pour la JVM, l'environnement les variables sont des chemins permanents sur votre machine utilisés pour diverses choses, y compris dire au PC où trouver la JVM et ses fichiers importants.

Oracle a des tutoriels sur la définition de chemins de classe tels que: http://docs.oracle.com/javase/7/docs/technotes/tools/windows/classpath.html

Concernant la variable d'environnement cette réponse renvoie à un article sur la recherche dans les variables d'environnement.

J'espère que cela aide

Bonne chance!

 3
Author: CS Ted, 2017-05-23 11:57:48