2009-10-04 5 views
0

Я пытаюсь скомпилировать мой класс вместе с предоставленным .jar-файлом, который содержит классы, которые мой класс будет использовать.Почему я не могу скомпилировать свой java-файл на cygwin, когда ему нужны классы из банки?

Это то, что я пытался:

javac -classpath .:WordSearch.jar WordSearchSolver.java 

И это ответ:

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 ошибки

Это мой класс:

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 содержит:

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

(WordSearchSolver.java и Wordsearch.jar находятся в том же каталоге)

Могу ли я что-то отсутствует?

ответ

0

В итоге это было сочетание точек с запятой и кавычек.

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

Спасибо всем, что указал мне в правильном направлении!

3

Хотя вы находитесь в Cygwin, я предполагаю, что ваш разделитель путей должен быть точкой с запятой, поскольку Java-компилятор/JVM будет работать в среде Windows.

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

Обратите внимание, что точка с запятой должна быть спаслось для предотвращения интерпретации оболочки Cygwin (благодаря bkail ниже)

+0

Я получаю еще более странные ошибки, связанные с bash, когда я использую точки с запятой. – mportiz08

+0

Вы должны указать точку с запятой, чтобы избежать ее интерпретации Cygwin. Например, javac -cp. \; WordSearch.jar или javac -cp ".; WordSearch.jar" –

+0

@bkail - спасибо. Теперь исправлено –

1

Вы не импортировать любого из классов с вашего WordSearch.jar в вашем WordSearchSolver классе. Вам нужны операторы импорта в верхней части этого класса, включая их пакет.

+0

Насколько я знаю, классы из WordSearch.jar даже не в пакете ... – mportiz08

+0

Они в одном пакете. Им не требуется импорт –

+0

Брайан, что в этом примере не было ясно. – akf