2015-10-29 2 views
0

У меня есть файл makefile, где один класс Java, довольно высокий по иерархии, зависит от тонны других классов. Мой основной вопрос я могу сделать следующее:Как обрабатывать Java во время компиляции?

$ (bigClass) .class: $ (smallOne) .class ... $ (lastSmallOne) .class $ (bigClass) .java

Javac bigClass.java маленькийOne.java ... последнийSmallOne.java

и все еще оптимальный. Джавак заботится обо всем этом для меня? Или мне нужно перебирать детали ссылок, например, с помощью кода gcc и c? Другими словами, если бы один из них не был обновлен, javac выяснил бы «о ... хорошо ... все, что мне нужно сделать, это скомпилировать это прямо здесь, а затем снова связать»? Если нет, то что эквивалентно javac для простого утверждения «gcc -o object1.o object2.o»?

+2

Там нет ссылки шага в Java. Вы никогда не превращаете байт-код в исполняемый файл, вместо этого отправляете его на виртуальную машину Java, которая делает компиляцию точно в момент ее фактического запуска. – azurefrog

+1

Почему вы пытаетесь [использовать make] (http://stackoverflow.com/questions/29184999/making-a-java-makefile) для сборки Java в любом случае? Вы действительно должны использовать современный инструмент, например [maven] (https://maven.apache.org/). – azurefrog

+2

Использование 'make' для сборки Java - у вас, похоже, определенная мазохистическая полоса ... –

ответ

0

если bigClass использует smallOne (как переменный-члена или статическую ссылку на метод, и т.д ..), то Java будет строить их оба, вам нужно только поставить главный класс

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