Пакет не существует?

#java #compiler-errors #package

#java #ошибки компилятора #пакет

Вопрос:

Моя структура каталогов:

  • ABC/src/com/example/model/a.java
  • ABC/src/com/example/web/b.java

Код для a.java :

 package com.example.model;

public class a {
    // ...
}
  

Код для b.java :

 package com.example.web;

import com.example.model.*;

public class b {
    // ...
}
  

Я уже установил переменную CLASSPATH среды в значение Tomcat servlet-api.jar , поэтому мне не нужно включать ее в javac команду.

Теперь a.java компилируется нормально, но когда я компилирую b.java , он говорит: «пакет com.example.model не существует».

Чем это вызвано и как я могу это решить? Я использую Ubuntu 10.10.

Комментарии:

1. почему бы вам не использовать какую-нибудь среду IDE?

2. какую команду компиляции вы используете

3. @JigarJoshi Я использую eclipse … и там все работает нормально .. но просто из любопытства я попробовал выше, и это не сработало!!

Ответ №1:

Добавьте выходной каталог (ABC / classes или аналогичный) в путь к классам javac, чтобы javac мог находить классы.

Редактировать:

На самом деле, предпочтительный способ — добавить параметр -sourcepath , как указано AlexR .

Таким образом, компилятор будет использовать текущий исходный код вашего кода вместо файлов классов с момента последней компиляции.

Комментарии:

1. Может быть, еще лучше добавить исходный путь, как предложил AlexR. Таким образом, компилятор сможет находить классы, которые еще не были скомпилированы.

Ответ №2:

Я думаю, вы забыли добавить -sourcepath опцию. Ваш компилятор не знает, где находится ваш исходный код, поэтому он не может найти a.class ранее скомпилированный. Если вы добавите эту опцию, вы даже сможете скомпилировать b.java только и a.java будет скомпилирован автоматически.

Кстати, в соответствии с соглашением об именовании Java имена классов начинаются с заглавной буквы

Ответ №3:

Добавьте ABC / src в свой путь к классу и попробуйте