Другие языки программирования и технологии
Java IDE: как eclipse(или другое IDE) находит классы проекта?
Если я правильно понял, то классы подгружаются из папок, указаных в classpath "переменных сред" пк. Путь к папке проектов eclipse в classpath у меня не указан, но классы проекта же подгружаются. Обычно если установлен только JDK, то надо чтобы файл класса был в одной папке с java-файлом, но в проектах eclipse они в разных папках. Объясните в чем дело.
в эклипсе нет компилятора
эклипс использует для компиляции компилятор (JDK) установленный в системе и путь к которому прописан в системных переменных
по этой самой причине рекомендуется для начала установить JDK, прописать его в системных переменных и только потом делать первый запуск эклипса.
если не накосячил с настройками джавы, то эклипс и не хрюкнет по этому поводу.
а если чё-та не так, то и скажет что не нашёл он установленного в системе JDK, или на худой конец JRE/
эклипс не хранит исходный код и скопилированный класс в одной папке
есть для исходников папка в проекте и есть для скомпилированных классов (это там где папка target)
"Обычно если установлен только JDK, то надо чтобы файл класса был в одной папке с java-файлом" -- совершенно не понять о чём вы говорите.
если вы компилируете свой джава код из коммандной строки, то у вас имеются разные опции
- не обязательно находиться в папке с исходником чтобы запустить его компиляцию; достаточно правильно указать в комманде путь к папке с исходником
- не обязательно находиться в папке куда хотели бы поместить результат компилляции; это тоже может быть указано в комманде
- и уж совсем не обязательно находиться в папке с установленным компилятором чтобы этот компилятор запускать.
эклипсу лишь требуется знать где установлен компиллятор
а о том где исходники и куда класть скомпилированное эклипс знает исходя из файловой структуры проекта
и ещё о "разных папках"
это только простенькая однофайловая джавовская программа может лежать в какой-то одной папке (хоть на рабочем столе без папки)
а серьёзные проесты имеют код сгруппированный в пакеты, имена которых по сути и есть те самые "разные папки"
эклипс использует для компиляции компилятор (JDK) установленный в системе и путь к которому прописан в системных переменных
по этой самой причине рекомендуется для начала установить JDK, прописать его в системных переменных и только потом делать первый запуск эклипса.
если не накосячил с настройками джавы, то эклипс и не хрюкнет по этому поводу.
а если чё-та не так, то и скажет что не нашёл он установленного в системе JDK, или на худой конец JRE/
эклипс не хранит исходный код и скопилированный класс в одной папке
есть для исходников папка в проекте и есть для скомпилированных классов (это там где папка target)
"Обычно если установлен только JDK, то надо чтобы файл класса был в одной папке с java-файлом" -- совершенно не понять о чём вы говорите.
если вы компилируете свой джава код из коммандной строки, то у вас имеются разные опции
- не обязательно находиться в папке с исходником чтобы запустить его компиляцию; достаточно правильно указать в комманде путь к папке с исходником
- не обязательно находиться в папке куда хотели бы поместить результат компилляции; это тоже может быть указано в комманде
- и уж совсем не обязательно находиться в папке с установленным компилятором чтобы этот компилятор запускать.
эклипсу лишь требуется знать где установлен компиллятор
а о том где исходники и куда класть скомпилированное эклипс знает исходя из файловой структуры проекта
и ещё о "разных папках"
это только простенькая однофайловая джавовская программа может лежать в какой-то одной папке (хоть на рабочем столе без папки)
а серьёзные проесты имеют код сгруппированный в пакеты, имена которых по сути и есть те самые "разные папки"
Видимо в свойствах проекта где-то прописано где находятся классы проекта.
Похожие вопросы
- В чем различие ключевых слов public и static в java? И объясните конкретно , что такое экземпляр класса.
- Как раньше программисты создавали большие проекты без нормальной IDE и отладчика?
- Что конкретно пишут на языке Java? Над чем работают ?
- Проблема с Java
- Шифр Виженера на Eclipse
- Решил изучать c/c++, скачал eclipse CDT, пару часов повоевал с библиотеками, победил, но теперь тупо не могу запустить!
- JAVA - Server - Socket как обнаружить разрыв соединения.. Метод какой-нить есть?
- Java для серверных приложений !!!
- Можете привести 5ть готовых примеров-решений, выполненных на JAVA ?
- Хочу стать Java программистом, для этого нужно знать JAVA)))