Пакет не существует? - PullRequest
1 голос
/ 03 ноября 2011

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

  • 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's servlet-api.jar, поэтому мне не нужно включать его в команду javac.

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

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

Ответы [ 3 ]

2 голосов
/ 03 ноября 2011

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

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

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

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

1 голос
/ 03 ноября 2011

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

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

0 голосов
/ 03 ноября 2011

Добавьте ABC / src к вашему classpath и попробуйте

...