2009-10-04 4 views
0

J'essaie de compiler ma classe avec un fichier .jar fourni qui contient des classes que ma classe utilisera.Pourquoi ne puis-je pas compiler mon fichier java sur cygwin, alors qu'il a besoin de classes dans un pot?

C'est ce que j'ai essayé:

javac -classpath .:WordSearch.jar WordSearchSolver.java 

Et voici la réponse:

WordSearchSolver.java:16: cannot find symbol 
symbol : class PuzzleWord 
location: class WordSearchSolver 
    public ArrayList<PuzzleWord> findwords() 
       ^
WordSearchSolver.java:18: cannot find symbol 
symbol : class PuzzleWord 
location: class WordSearchSolver 
    return new ArrayList<PuzzleWord>(); 
         ^

2 erreurs

Ceci est ma classe:

import java.util.ArrayList; 

public class WordSearchSolver 
{ 
    public WordSearchSolver(int size, char[][] puzzleboard, ArrayList<String> words) 
    { 

    } 

    public ArrayList<PuzzleWord> findwords() 
    { 
     return new ArrayList<PuzzleWord>(); 
    } 
} 

WordSearch.jar contient:

PuzzleUI.class 
PuzzleWord$Directions.class 
PuzzleWord.class 
Natural.class 

(WordSearchSolver.java et Wordsearch.jar sont dans le même répertoire)

Est-ce que je manque quelque chose?

Répondre

0

Il a fini par être une combinaison de points-virgules et de guillemets.

javac -classpath ".;WordSearch.jar" WordSearchSolver.java 

Merci à tous pour m'avoir indiqué dans la bonne direction!

3

Bien que vous soyez sur Cygwin, je suppose que votre séparateur de chemin doit être un point-virgule, puisque le compilateur Java/JVM sera exécuté dans un environnement Windows.

javac -cp .\;WordSearch.jar ... 

Notez que le point-virgule doit être échappé pour empêcher l'interprétation par le shell Cygwin (grâce à bkail ci-dessous)

+0

Je reçois même des erreurs plus étranges impliquant bash lorsque j'utilise des points-virgules. – mportiz08

+0

Vous devez indiquer le point-virgule pour éviter qu'il soit interprété par Cygwin. Par exemple, javac -cp. \ WordSearch.jar ou javac -cp ".; WordSearch.jar" –

+0

@bkail - merci. Maintenant corrigé –

1

Vous n'êtes pas importer l'une des classes de votre WordSearch.jar dans votre classe WordSearchSolver. Vous avez besoin d'instructions d'importation en haut de cette classe, y compris leur paquet.

+0

Autant que je sache, les classes de WordSearch.jar ne sont même pas dans un paquet ... – mportiz08

+0

Ils sont dans le même paquet. Ils n'ont pas besoin d'importer –

+0

Brian, ce n'était pas clair dans l'exemple. – akf

Questions connexes