2015-05-29 5 views
0

Новое в java, так что мои руки грязные с компиляцией cmd. Получение «не может найти символ» для созданных экземпляров классов. Пожалуйста, помогите! :)Javac command prompt классы компиляции не найдены

Класс MovieDAO для запросов к базе данных создает экземпляр beans MovieDetails и MovieInfo.

Структура каталогов: в корневой папке для проекта есть src \ com \ library \ model, содержащий MovieDAO.java, MovieDetails.java, MovieInfo.java.

MovieDetails и MovieInfo уже скомпилированы. Файлы .class находятся в классах \ com \ library \ model. Это также предназначенный каталог для класса MovieDAO.

MovieDAO имеет:

package com.library.model; 

И

import com.library.model.*; 

Командная строка находится в корневой папке (Project). Поступил команда:

javac -classpath C:\Users\Sudipto\Desktop\.....\mysql-connector-java.jar:classes:. -d classes src\com\library\model\MovieDAO.java 

Ошибка компиляции:

....MovieDAO.java:25: error: cannot find symbol 
MovieDetails movieDetails = new MovieDetails(); 
^ 

То же самое с MovieInfo. Очевидно, какая-то мелочь мне не хватает. Не могу понять, что.

ответ

0

Запустить javac из каталога src и сменить src \ com \ library \ model.MovieDAO.java в com \ library \ model \ MovieDAO.java.

Ex: Источник Dir: D: \ ~ \ JavaSamples \ ЦСИ

классов Dir: D: \ ~ \ JavaSamples \ классы

Итак, когда вы попробуйте скомпилировать из каталога Src, как показано ниже:

D:\~\JavaSamples\src>javac -classpath ../classes -d ../classes com\library\model\MovieDAO.java 
+0

Изменен каталог в ЦСИ, изменил команду: JAVAC -classpath C: \ Users \ Sudipto \ Desktop \ .... . \ MySQL-разъем-java.jar: классы :. -d классы com \ library \ model \ MovieDAO.java (удалено src). Получение ошибки: javac: каталог не найден: классы. Кажется, что в качестве каталога следует использовать «классы» после -d. Не было этой проблемы из корневой папки. –

+0

Sudipto - Я привел пример. Смотрите внимательно и повторите попытку. – Rajesh

0

Убедитесь, что папка classes находится в текущем каталоге, потому что вы включили только :classes: в classpath.

Если classes папка отсутствует в текущей директории, укажите либо абсолютный (или) относительный путь к папке classes в пути к классам. подобный

javac -classpath c:\...\connector.jar:.\classes: -d <target> 

(or) 

javac -classpath c:\...\connector.jar:c:\project\classes: -d <target> 
0

Разделитель путей в Windows - это точка с запятой (;) в отличие от двоеточия (:) в Unix. Кроме того, нет необходимости помещать текущий каталог (.) В путь класса. Если бы это был я, я бы поставил classpath в кавычки, просто чтобы убедиться, что я не случайно ссылаюсь на пробелы с пробелами, но эта часть зависит от вас.

Если вы хотите, чтобы Java скомпилировал весь несвязанный исходный код, добавьте src в путь к классам.

javac -classpath "C:\Users\Sudipto\Desktop\.....\mysql-connector-java.jar;classes;src" -d classes src\com\library\model\MovieDAO.java 

В противном случае, если вы определенно хотите использовать уже скомпилированные классы и не перекомпилировать исходный код для MovieDetails и MovieInfo, просто оставьте от SRC.

javac -classpath "C:\Users\Sudipto\Desktop\.....\mysql-connector-java.jar;classes" -d classes src\com\library\model\MovieDAO.java 

Наконец, если MovieDao в com.library.model, нет необходимости импортировать com.library.model.*.

+0

Спасибо за ваш ответ. это действительно поучительно :). Я удалил импорт в MovieDAO и ввел предложенную вами команду. Ошибка компиляции: невозможно получить доступ к MovieDetails, файл класса: classes \ com \ library \ model \ Файл класса MovieDetails.class содержит неправильный класс. Удалите или убедитесь, что он отображается в правильном подкаталоге пути к классам. ПОМОГИТЕ! –

+0

Решено! Убийственно глупо. Не включил пакет в бобы. Спасибо, парни! –

Смежные вопросы