Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > Проблема при компилировании


Автор: Jema 3.1.2007, 10:43
Доброе время суток.
Выполняю уроки книги и наткнулся на проблему.
Код

simplelist.java:14: cannot find symbol
symbol  : class Questions
location: class com.apress.faq.SimpleList
        Questions questions = new Questions();
        ^
simplelist.java:14: cannot find symbol
symbol  : class Questions
location: class com.apress.faq.SimpleList
        Questions questions = new Questions();
                                  ^
2 errors


думаю проблема в том, что при Questions questions = new Questions(); гад не видит класса Questions.
Компилирую я вот так javac -classpath javaee.jar  simplelist.java
simplelist и Questions находятся в одном пакете (у обоих прописано package com.apress.faq;)
Questions.class лежит тут же рядом (com/apress/faq/ все это тут происходит)
Что я делаю не так... в чем проблема?

З.Ы. -classpath javaee.jar нужен для javax.servlet.jsp.tagext
З.З.Ы. советовали еще сделать так javac -classpath javaee.jar;Questions.java simplelist.java
не помогло

Автор: Foo 3.1.2007, 11:14
javac -classpath javaee.jar; .;  simplelist.java 

Автор: Jema 3.1.2007, 11:57
javac -classpath javaee.jar; .;  simplelist.java
с пробелом вот тут  ; .; сказало неверный флаг, без пробела та же ошибка с первого поста... я уже не знаю что делать...

Добавлено @ 12:09 
Да... тут еще вычитал в "Как начать работать с JAVA"
http://forum.vingrad.ru/index.php?act=module&module=vingradfaq&article_num=003065

Код

На практике классы обычно помещают в пакеты (например, mypack):
...
При этом должны соблюдаться следующие правила:
1. Java-файл HelloWorld.java должен находиться в каталоге mypack.
2. Компиляция производится командой javac mypack.HelloWorld.java
3. Запуск производится командой java mypack.HelloWorld (при условии, что каталог, в котором находится mypack, добавлен в CLASSPATH).


У меня на это ругается что файл не найден...
в CLASSPATH добавил D:\Java\work\test3\WEB-INF\classes
файлы лежат в D:\Java\work\test3\WEB-INF\classes\com\apress\faq\
пакет com.apress.faq
компилирую с D:\Java\work\test3\WEB-INF\classes
командой D:\Java\work\test3\WEB-INF\classes>javac -classpath com\apress\faq\javaee.jar com.apress.faq.simplelist.java

Автор: powerOn 3.1.2007, 12:13
А вы из какой папки компилируете?

К примеру, у Вас есть директория:
C:/com/apress/faq/
в ней лежат соответственно: SimpleList.java и Questions.java
Тогда компилировать нужно из директроии C:/ поскольку поиск классов в пакетах идет в соответствующих поддиректориях.
c:\>javac ......



Автор: Foo 3.1.2007, 12:15
javac -classpath javaee.jar;.  simplelist.java  

Автор: Jema 3.1.2007, 12:19
Фух..... огромное спасибо!!! Помогло вот так:
C:\>javac -classpath javaee.jar;.  com\apress\faq\simplelist.java

тему понял ;)

Автор: Foo 3.1.2007, 12:27
поидее javac -classpath javaee.jar;.  simplelist.java должно пахать при запуске из директории где находится класс

хотя нет, это если только пакет по дефаулт

Автор: Jema 3.1.2007, 12:34
Цитата(Foo @ 3.1.2007,  12:27)
поидее javac -classpath javaee.jar;.  simplelist.java должно пахать при запуске из директории где находится класс

не работало
так как пакет звется com.apress.faq то пришлось запускать из корня классов, но указав путь четко к файлу... 
а вот соседний класс из  пакета нашелся уже по дереву.
Вот так =)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)