Java: класс разрешен? - PullRequest
       20

Java: класс разрешен?

0 голосов
/ 10 января 2012

Надеюсь, этот вопрос не повторился. Но просто нигде не могу найти ответ:

У меня есть ОДНА папка, содержащая два файла: один A.java, другой B.class.

Сейчас в A.java я пытаюсь объявить

public class A extends Applet{
...
    B aB;
}

Компилятор выдаёт мне:

B cannot be resolved to a type

Я прочитал много сообщений, в которых говорится, что если файлы находятся в одной папке, мне не нужно импортировать. Может ли кто-нибудь помочь мне «решить» эту проблему? Большое спасибо!

----------- РЕШИТЬ! - СМОТРИТЕ ОТВЕТЬ НИЖЕ ------------------

Ответы [ 3 ]

1 голос
/ 10 января 2012

Файлы .class должны находиться в каталоге, указанном в переменной classpath.Обычно вы помещаете ваши файлы .java в один каталог (src), компилируете в другой каталог (bin) и получаете внешние файлы .class в третий каталог (lib).Команды будут выглядеть следующим образом:

# compile
javac -sourcepath src -classpath lib -d bin
# run
java -classpath bin:lib A

Использование IDE, например eclipse , должно очень помочь, так как заботится о большинстве деталей

0 голосов
/ 10 января 2012

Компилятор ищет файл * .class в своем пути к классам. Он будет искать только файлы * .java в тех же исходных каталогах. Вам необходимо установить путь к классу, чтобы включить каталог.

Или вы можете использовать IDE, которая настраивает все это для вас и экономит много времени в процессе.

0 голосов
/ 10 января 2012

Простой случай, который вы опубликовали, работает на меня.Я бы проверил следующие вещи:

  • Вы уверены, что B.class присутствует в той же папке, что и A.java?
  • Вы запускаете javac из этой папки?
  • Правильно ли вы ввели название класса B везде в вашей программе?Это включает использование заглавных букв, так как идентификаторы Java чувствительны к регистру.
  • Есть ли в вашей программе объявления package?Если это так, ничего из этого не получится, поскольку вы неявно используете пакет по умолчанию, просто выбрасывая все в папку.
...