#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 в свой путь к классу и попробуйте