je déconner avec classpaths etc. Et il y a quelque chose que je ne comprends pas tout à fait ...Pourquoi le classpath spécifié ne trouve pas la classe étendue?
Supposons que nous avons deux fichiers dans une structure de répertoire comme suit:
[current dir]
|
org
|
amigo
|
|---A.class
|---B.java
classe A :
package org.amigo;
public class A {}
classe B:
package org.amigo;
public class B extends A {}
jusqu'à présent, si g ood ... Maintenant, étant dans le current dir
nous invoquons
javac org\amigo\B.java
Cette compile la classe très bien. Ensuite, essayons
javac -cp . org\amigo\B.java
Cela fonctionne aussi bien. Mais ... quand nous essayons de courir
javac -cp .:org org\amigo\B.java
nous obtenons un:
cannot find symbol
symbol: class A
public class B extends A {
^
1 error
Soooooo .... ma question est - comment se fait cela ne fonctionne pas?
(Bien sûr, nous pourrions remplacer -cp .:org
avec -cp .:[any dir]
et toujours obtenir le même résultat.)
Si je comprends bien (dois-je? ... -_-) l'option -classpath
, il nous laisse ARRIVE spécifions dans lequel répertoires pour rechercher la classe requise. Donc, si la classe A.class est présente dans un de ces répertoires, cela ne fonctionnera-t-il pas? Je veux dire - juste l'option -cp .
a fonctionné!
OMG, cloué ça :) merci – aMiGo