À l'aide de plusieurs .jar avec javac
pardon ma terminologie. Je suis en train d'utiliser trois fichiers jar avec un programme en java pour mon CS de classe. La première est funjava, une simplification du langage java, et les autres sont des définitions de classe de la couleur et de la géométrie. Voici mon code et ce qui se passe quand j'essaie de le lancer.
import colors.*;
class Canvas{
public static void main(String [] args){
System.out.println("test123");
Circle cr1 = new Circle( new Posn(1,2), 5, "blue");
Circle cr2 = new Circle( new Posn(5,4), 3, "red");
}
}
class Circle{
Posn center;
int rad;
String color;
Circle(Posn p, int r, String c){
this.center = p;
this.rad = r;
this.color = c;
}
}
class Posn{
int x;
int y;
Posn(int x, int y){
this.x = x;
this.y = y;
}
}
Le dernier argument de Cercle doit être l'une des couleurs de la colors.jar, pas une chaîne de caractères.
niko@niko-laptop:~/Classes/Fundies2$ javac -cp *.jar Canvas.java
error: Class names, 'funjava.jar,geometry.jar', are only accepted if annotation processing is explicitly requested
1 error
niko@niko-laptop:~/Classes/Fundies2$ ls
1-20-10.java 1-21-10.java Book.class Canvas.class Circle.java Examples.class funjava.jar hw1~ Main.java OceanWorld.java
1-21-10 Author.class book.java Canvas.java colors.jar Examples.java geometry.jar Ishape OceanWorld Posn.class
1-21-10~ Author.java Book.java Circle.class Combo.java Fundies2.txt hw1 Main.class OceanWorld~ Rect.java
Alors, comment puis-je demander explicitement de l'annotation processing?
Merci.
OriginalL'auteur niko | 2010-01-26
Vous devez vous connecter pour publier un commentaire.
En plus de Romain Muller's réponse:
Si vous voulez l'utiliser tous les *.les fichiers jar dans le répertoire courant, et que vous utilisez le JDK 6 ou version ultérieure, vous pouvez utiliser un seul astérisque. Dans un shell unix (comme Linux), vous aurez besoin pour échapper à la astérisque:
Cela fonctionne lors de l'exécution de l'application Java:
Note le
.:
dire que Java regardez dans le répertoire en cours ainsi que l' *.les fichiers jar de trouverCanvas.class
.Sur Windows, utilisez un point-virgule (
;
) au lieu d'une virgule comme séparateur.OriginalL'auteur ZoogieZork
Autant que je sache, le pc-option nécessite classpath être spécifié comme une virgule ou un point-virgule-liste séparée par des endroits dans la plupart des situations, et non pas une liste séparée par des virgules comme OS semble causés lors de l'expansion de
*.jar
.Vous êtes donc tout à fait raison 🙂
OriginalL'auteur Romain