Java: не может разрешить символ - PullRequest
0 голосов
/ 14 октября 2009

Я компилировал файл JAVA (1.4 varsion) и получал следующую ошибку (примерно в 100 раз все одинаковые).

Appli.java:721: cannot resolve symbol
symbol  : class License
location: class test.App.Appli
            License  sellLicense = sell.getLicense();

Я использовал

   run/cmd/cd D:...../javac Appli.java

Я установил переменную CLASSPATH для папки Classes java-файлов, которые я сейчас запускаю

  Control panel/Settings/System/System Properties /Advanced/Environmental Variables/System Variables/ Add/CLASSPATH 

Должен ли я использовать

Как решить проблему?

Ответы [ 3 ]

2 голосов
/ 14 октября 2009

Мне кажется, что вам нужно скомпилировать класс License с классом Appli. Взгляните на Javac Documentation для более подробной информации, но вы можете сделать что-то вроде следующего:

javac Appli.java License.java

Если лицензия находится в библиотеке, вам нужно будет добавить библиотеку в ваш путь к классам компиляции. Это делается с помощью флага -classpath:

javac -classpath "classpath" Appli.java
1 голос
/ 14 октября 2009

Возможно, вы пропустили оператор import.

1 голос
/ 14 октября 2009

Вам необходимо установить CLASSPATH и убедиться, что вы находитесь в правильном каталоге.

Предполагая, что test.App.Appl пытается сослаться на test.App.License, структура каталогов должна быть:

/somedir/test
/somedir/test/App
/somedir/test/App/Appl.java
/somedir/test/App/License.java

Вам следует установить $CLASSPATH на "/somedir", затем изменить текущий каталог на /somedir и запустить компилятор как javac test/App/*.java; например,

$ export CLASSPATH="/somedir"
$ cd /somedir
$ javac test/App/*.java

Вы также можете использовать параметр командной строки -cp с командой javac (и позже java), и вы запускаете компилятор javac из другого каталога, используя параметр -sourcepath.

Другая возможность состоит в том, что пакет для License не test.App. Если это так, вам нужно настроить структуру каталогов так, чтобы она соответствовала именам пакетов, и добавить оператор import в класс Appl.

EDIT: если вы заметили build.xml или pom.xml (или, возможно, даже Makefile) в дереве исходных текстов, вам, вероятно, не следует использовать javac напрямую. build.xml предназначен для сборки с использованием Ant, a 'pom.xml is for Maven (or Ivy) and a Makefile or makefile is for make`.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...