В TOMCAT приложения JSP У меня есть этот макет каталога:Классы не видя друг друга в JSP
webapps/
myProjectName/
index.jsp
WEB-INF/
classes/
mypackage/
class1.java
class2.java
Я пытаюсь скомпилировать class1.java, который ссылается на class2.java. Она закодирована в форме вроде этого:
package mypackage;
public class class1 extends class2 {}
и class2 выглядит следующим образом:
package mypackage;
public class class2 {}
однако, я получаю сообщение об ошибке на class1 говорят, что Class2 не может быть найден. Сначала я скомпилировал класс2, который скомпилировался просто отлично, но когда я попытался скомпилировать класс1, он потерпел неудачу, сказав, что class2 не может быть найден. Я попытался добавить каталог в моем пути к классам (Ubuntu), добавив в/и т.д./enviornment:
/usr/local/tomcat/webapps/myProjectName/WEB-INF/classes
, но он по-прежнему не компилируется.
Любая идея, что не так?
Точный вывод ошибок заключается в следующем:
javac "Page.java" (in directory: /usr/local/tomcat/webapps/developers/WEB-INF/classes/library)
Page.java:20: cannot find symbol
symbol : class DynamicPage
location: class library.Page
DynamicPage dynamicClasses = {new registerPage()};
^
Page.java:20: illegal initializer for <none>
DynamicPage dynamicClasses = {new registerPage()};
^
Page.java:20: cannot find symbol
symbol : class registerPage
location: class library.Page
DynamicPage dynamicClasses = {new registerPage()};
^
Page.java:34: cannot find symbol
symbol : class DynamicPage
location: class library.Page
DynamicPage selected = null;
^
Page.java:35: cannot find symbol
symbol : class DynamicPage
location: class library.Page
for (DynamicPage dp: dynamicClasses) {
^
5 errors
Compilation failed.
так что «mypackage» на самом деле «библиотека», «класс2» на самом деле «DynamicPage», а «class1» - это «Страница», правильно? Некоторые из кода, показанного в сообщениях об ошибках, не имеют смысла, поэтому может оказаться полезным показать источник DynamicPage, если он не слишком длинный. Например, инициализатор выглядит неправильно, а for-loop выглядит странно (если DynamicPage не реализует Iterable, что не является интуитивным относительно того, почему это было бы). –
Да. Ссылки на страницы DynamicPage в коде, но он дает ошибку, говоря, что класс не может быть найден. –
В ответ на ваше редактирование, Bert F, лучший пример проблемы, с которой я столкнулся, заключается в том, что DynamicPage является интерфейсом и отлично компилируется. RegisterPage - это класс, который реализует DynamicPage, но не может видеть DyanamicPage и, таким образом, компилируется с ошибкой. –