2013-09-18 2 views
4

Я создаю один make-файл в своем проекте.java makefile dont выполнить команду запуска

JFLAGS = -g 
JC = javac 
JVM= $(JAVA_HOME)/bin/java 
.SUFFIXES: .java .class 
.java.class: ; $(JC) $(JFLAGS) $*.java 

CLASSES = \ 
    Class1.java \ 
    Class2.java \ 
    Main.java 

MAIN = Main 

default: classes 

classes: $(CLASSES:.java=.class) 

run : classes $(JVM) $(MAIN).class 

Коды ниже выполняются и скомпилируют мой класс java, но не выполняют мою команду запуска. завершить файл make и не выполнить мой запуск. Почему в моем коде что-то не так?

+0

Dont тратить свое время, пытаясь построить проекты Java с производства. Сделать здесь не очень хорошо - как только вы организуете свои классы в пакетах, вы ввернуты (вы никогда не получите зависимостей). Сделайте себе одолжение и изучите основы «муравей» или «maven» –

+0

Я понимаю, что вы указываете, но мне нужно это, чтобы научиться тому, как это работает. Спасибо за ответ. – EderRoger

ответ

3

Вам нужно добавить команду «Выполнить» в качестве действия «выполнения» цели, а не обязательное условие:

run : classes 
     $(JVM) $(MAIN) 
#make sure the line above begins with a tab 
+0

Спасибо, теперь работайте, я запускаю с помощью «make run», затем выполняю мой основной класс. – EderRoger

0

Make попытается создать первую цель в вашем файле makefile (и все предпосылки этой цели и все предпосылки этих целей и т. Д.). Чтобы выбрать другую или более чем одну цель верхнего уровня (или «Цель цели»), вы можете указать их в командной строке: make run.

Вы можете переместить цель run в качестве первой цели в файле makefile, после чего она будет запущена по умолчанию.

Или, если у вас есть более чем одна цель «верхнего уровня», которую вы хотите запустить, вы можете собрать их в другом правиле; например, в приведенном выше вы можете использовать:

default: classes run 

Хотя по давней конвенции эта цель называется all (но это только условность).

+0

спасибо за ответ, ваш ответ покажет мне больше о make-файлах, и я продолжаю пытаться решить мою проблему. c ya. – EderRoger

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