Форум программистов, компьютерный форум, киберфорум
Java
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.87/15: Рейтинг темы: голосов - 15, средняя оценка - 4.87
быдлокодер
 Аватар для kravam
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705

Почему *.java файл компилируется без компилятора?

10.06.2015, 18:29. Показов 3431. Ответов 51
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Друзья! IDE NetBeans 7.3.1. JDK установлена отдельно, там нахожу javac.exe и переименовываю его в javac_.exe. "Hello word" из IDE компилируется так:

как видите, ни малейшего упоминания javac
ant -f <Полное имя папки с проектом> clean jar
init:
deps-clean:
Updating property file: <Полное имя папки с проектом>\build\built-clean.properties
Deleting directory <Полное имя папки с проектом>\build
clean:
init:
deps-jar:
Created dir: <Полное имя папки с проектом>\build
Updating property file: <Полное имя папки с проектом>\build\built-jar.properties
Created dir: <Полное имя папки с проектом>\build\classes
Created dir: <Полное имя папки с проектом>\build\empty
Created dir: <Полное имя папки с проектом>\build\generated-sources\ap-source-output
Compiling 1 source file to <Полное имя папки с проектом>\build\classes
Copying 1 file to <Полное имя папки с проектом>\build\classes
compile:
Created dir: <Полное имя папки с проектом>\dist
Copying 1 file to <Полное имя папки с проектом>\build
Nothing to copy.
Building jar: <Полное имя папки с проектом>\dist\JavaApplication1.jar
To run this application from the command line without Ant, try:
java -jar "<Полное имя папки с проектом>\JavaApplication1.jar"
jar:
СБОРКА УСПЕШНО ЗАВЕРШЕНА (общее время: 0 секунд)


Более того, javac нигде больше не присутсвует, ни в системных папках, нигде. (В системных-то хоть java.exe есть)

Вопрос в заголовке темы. Спасибо, кто откликнется.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
10.06.2015, 18:29
Ответы с готовыми решениями:

[template] почему код не компилируется без конструктора
добрый вечер. вопрос поместил прямо в коде. http://rextester.com/AESO94403 #include &lt;iostream&gt; #include &lt;string&gt; ...

Компилируется без ошибок, но командная строка, почему то, сразу же закрывается
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;fstream&gt; #include &lt;list&gt; #include &lt;iterator&gt; int main() { ...

Почему не компилируется заголовочный файл?
//run.cpp #include &lt;iostream&gt; using std::cout; using std::endl; #include &quot;GradeBook.h&quot; int main() { GradeBook...

51
 Аватар для ne2win
206 / 206 / 71
Регистрация: 25.02.2014
Сообщений: 569
10.06.2015, 21:38
kravam, NetBeans собирает все проекты при помощи Ant и так как javac написан на java, ему нет смысла вызывать обертку javac.exe. Он делает это примерно так:
Java
1
JavaCompiler compiler = ToolProvider.getSystemJavaCompiler()
Если вы посмотрите в папку где установлен jdk, увидите там java классы компилятора
0
быдлокодер
 Аватар для kravam
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
10.06.2015, 21:48  [ТС]
Цитата Сообщение от Kochmarik Посмотреть сообщение
Если вы посмотрите в папку где установлен jdk, увидите там java классы компилятора
классы есть, да. А компилятор всё же почему не вызывается-то?
0
 Аватар для ne2win
206 / 206 / 71
Регистрация: 25.02.2014
Сообщений: 569
10.06.2015, 22:10
Цитата Сообщение от kravam Посмотреть сообщение
А компилятор всё же почему не вызывается-то?
Как? Вы же сами привели пример, что компилирует. Я говорю лишь о том, что для компиляции необязательно запускать javac.exe, а можно напрямую обращаться к java классам компилятора,
0
быдлокодер
 Аватар для kravam
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
11.06.2015, 00:46  [ТС]
Тогда я так спрошу, какой процесс отвечает за сборку проекта? javac.exe? Нет. ant.exe? Нет. Какой же?
0
 Аватар для ne2win
206 / 206 / 71
Регистрация: 25.02.2014
Сообщений: 569
11.06.2015, 02:36
kravam, есть разные сборщики, netbeans по умолчанию запускает Ant.
Цитата Сообщение от kravam Посмотреть сообщение
какой процесс отвечает за сборку проекта?
Если именно процесс то java.exe . Jvm загружает классы сборщика ant и исполняет их.
0
быдлокодер
 Аватар для kravam
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
11.06.2015, 12:46  [ТС]
Ладно, тогда я так спрошу- какой процесс делает из *.java файлов *.class файлы? javac.exe? Нет. ant.exe? Нет (потому, что такого файла "ant.exe" нет и процесса соответствующего тоже. Кстати, я об этом уже писал, но почему-то был проигнорирован:
Цитата Сообщение от Kochmarik Посмотреть сообщение
netbeans по умолчанию запускает Ant.
).java.exe? Опять нет (ведь java.exe не делает же из *.java файлов *.class файлы?)

Так какой же процесс?
0
 Аватар для ne2win
206 / 206 / 71
Регистрация: 25.02.2014
Сообщений: 569
11.06.2015, 12:58
Цитата Сообщение от kravam Посмотреть сообщение
Кстати, я об этом уже писал, но почему-то был проигнорирован:
вы не внимательно читаете то, что я пишу. Ant и javac написаны на java и интерпретируются непосредственно самой JVM. Вот так запускается Ant - java -jar ant.jar, а Ant вызывает компилятор кодом, который я привел в первом посте. Последнее предложение не является выдержкой из документации, это грубый пример, для того чтобы понять суть
0
быдлокодер
 Аватар для kravam
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
17.06.2015, 13:18  [ТС]
Цитата Сообщение от Kochmarik Посмотреть сообщение
Ant вызывает компилятор кодом, который я привел в первом посте
Правильный ответ такой: ant суть батник "ant.bat", идёт в комплекте с NetBeans. ant.bat выполняет команды, которые написаны в файле build.xml проекта. Одна из этих команд-запуск компилятора javac. (Отрывок из build.xml)

XML
1
2
3
     <target name="compile" depends="init" description="compile java sources">
        <javac srcdir="${source.dir}" destdir="${build.dir}"/>
    </target>
ant можно скачать отдельно от IDE например, тут

++++++++++++++++++++++++++++++++++++++++ ++++

Не по теме:

Лучше уж никак вместо как нибудь (c)

0
 Аватар для ne2win
206 / 206 / 71
Регистрация: 25.02.2014
Сообщений: 569
17.06.2015, 19:18
Цитата Сообщение от kravam Посмотреть сообщение

Не по теме:

Лучше уж никак вместо как нибудь (c)

Это вы о чем?
Цитата Сообщение от kravam Посмотреть сообщение
Правильный ответ такой
Вы ответили на свой вопрос? Полагаю тему о том, что "там нахожу javac.exe ant.bat и переименовываю его в javac_.exe ant_.bat." ждать не придется

Добавлено через 1 минуту
Цитата Сообщение от kravam Посмотреть сообщение
ant.bat выполняет команды, которые написаны в файле build.xml проекта
Откройте файл и почитайте, что он выполняет
0
быдлокодер
 Аватар для kravam
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
17.06.2015, 20:21  [ТС]
Цитата Сообщение от Kochmarik Посмотреть сообщение
Откройте файл и почитайте, что он выполняет
А мне учитель сказал, чё он выполняет. Ну и я сам удостоверился, меняя build.xml файл и наблюдая за результатом. А вы не знаете. Поэтому внимайте.
0
 Аватар для ne2win
206 / 206 / 71
Регистрация: 25.02.2014
Сообщений: 569
17.06.2015, 20:47
Цитата Сообщение от kravam Посмотреть сообщение
А вы не знаете. Поэтому внимайте.
Внимаю и поражаюсь.
0
быдлокодер
 Аватар для kravam
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
17.06.2015, 20:49  [ТС]
Цитата Сообщение от Kochmarik Посмотреть сообщение
Внимаю и поражаюсь.
Кстати, в самом ant-е ничего не сказано за build.xml. Зато сказано здесь.
0
Эксперт Java
 Аватар для KEKCoGEN
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
17.06.2015, 20:59
Цитата Сообщение от kravam Посмотреть сообщение
А мне учитель сказал
а вам учитель не сказал что ant это старая мертвая технология изучать которую уже нет смысла?
0
быдлокодер
 Аватар для kravam
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
17.06.2015, 21:04  [ТС]
Цитата Сообщение от KEKCoGEN Посмотреть сообщение
а вам учитель не сказал что ant это старая мертвая технология изучать которую уже нет смысла?
Нет таких страшных слов он не употреблял. Он всего лишь сказал, что ant имеет некоторые недостатки, один из которых он назвал отсутствием версионирования и стал рассказывать про maven.

Но ведь это неважно абсолютно для нашего вопроса? А важно, что ant пользуется *.xml- файлом. Теперь, зная это, я могу предположить, что другие системы сборок, которые хорошие тоже пользуются подобными файлами. Они могут называться как-нибудь типа pom.xml. Это важно. Всё остальное- суета сует и томление духа.
0
 Аватар для ne2win
206 / 206 / 71
Регистрация: 25.02.2014
Сообщений: 569
17.06.2015, 21:35
Цитата Сообщение от kravam Посмотреть сообщение
А важно, что ant пользуется *.xml- файлом.
это очень важно, но позвольте спросить, вы обращали внимание на название темы, с тех пор как написали его?
0
быдлокодер
 Аватар для kravam
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
17.06.2015, 21:43  [ТС]
Цитата Сообщение от Kochmarik Посмотреть сообщение
это очень важно, но позвольте спросить, вы обращали внимание на название темы, с тех пор как написали его?
Ну да. С учётом того, что я теперь знаю пр ant и про build.xml, ответ на тему может звучать так: в посте 1 под катом присутсвует команда "ant" (ant.bat, если быть точнее), которая, собсно и запускает javac. Указанием на запуск javac служит файл build.xml, написанный по определённым правилам. Поэтому укащание ant-у запустить компилятора javac, очень даже присутствует в файле build.xml, только не в явном виде (явный это запуск из cmd)

Обсуждение правил написания build.xml опускаем, как неотносящихся к теме.

Не по теме:

Вот такой тебе будет мой ответ(с)

0
 Аватар для ne2win
206 / 206 / 71
Регистрация: 25.02.2014
Сообщений: 569
17.06.2015, 21:51
kravam, переименуйте этот батник и убедитесь, что вы не сдвинулись ни на дюйм.
0
быдлокодер
 Аватар для kravam
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
17.06.2015, 21:59  [ТС]
Цитата Сообщение от Kochmarik Посмотреть сообщение
kravam, переименуйте этот батник и убедитесь, что вы не сдвинулись ни на дюйм.
переименовать во что?
0
 Аватар для ne2win
206 / 206 / 71
Регистрация: 25.02.2014
Сообщений: 569
17.06.2015, 22:20
kravam, во что нибудь или удалите вообще
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
17.06.2015, 22:20
Помогаю со студенческими работами здесь

почему не компилируется ? (сбой при преобразовании в COFF: файл недопустим или поврежден)
почему не компилируется ? ( #include &lt;iostream&gt; #include &lt;string.h&gt; using namespace std; int main() { const int maxlen =...

Заголовочный файл, который компилируется в VS2017, не компилируется в Qt
В общем был класс &quot;Матрицы&quot;, который нормально работал в VS2017. Возникла необходимость использовать использовать его для создания...

Почему возможно задать массив с размером -1 (почему такое вообще компилируется)?
Всем привет. Долгое время не писал на плюсах, решил пройтись по основам, вспомнить. По непонятным для меня причинам этот код...

Почему встроенные исключения Java, требующие использования throws, по факту обходятся без него?
Почему встроенные исключения Java, требующие использования throws, по факту обходятся без него? Я имею ввиду, например...

Ini-файл: чтение происходит без проблем, но запись в файл не происходит, почему?
Пытаюсь научиться работать с ini файлам, чтение происходит без проблем но запись в файл не происходит, пишу на win7? почему та, всё же...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru