A make parancs C, C++ alapú projektekhez lett kitalálva. A Java nyelvhez készítettek egy ant nevű eszközt, ezt szokás vele használni. Én azonban jobban szeretem a make parancsot, így most ennek használatát mutatom be Java nyelvvel.
A make parancs megnézi, hogy aktuális könyvtárban van-e egy Makefile nevű állomány. Ha van, akkor elkezd benne célokat keresni. Minden célhoz tartoznak utasítások, amelyeket végrehajt.
A make parancsot persze be kell szerezni. Windowsra mingw32-make.exe nevű fájl kell keresnünk. Ez kis program minden függőség nélkül egyedül futtatható, csak be kell másolni egy olyan könyvtárba, amely útvonalban van, az operációs rendszerben.
Tetszés szerint átnevezhető a mingw32-make.exe fájl make.exe-re.
Legyen a példa kedvéért a fordító a következő helyen:
Egy nagyon leegyszerűsített Makefile így nézhet ki:
all: Program01.java p:\bin\Java\jdk1.6.0_18\bin\javac Program01.java
JC = javac JAVA = java SOURCES = \ Program01.java \ MainFrame.java \ MasterPanel.java \ SecondPanel.java all: $(SOURCES) $(JC) $(SOURCES) $(JAVA) Program01
SOURCES=CarRace.java \ view/Car.java \ view/MainWindow.java \ view/Track.java \ view/ButtonPanel.java \ view/DisplayPanel.java \ controller/Controller.java all: javac $(SOURCES) CLASSES=CarRace.class \ view/*.class \ controller/*.class JARFILE=CarRace.jar MANIFEST=manifest.mf jar: jar cvfm $(JARFILE) $(MANIFEST) $(CLASSES) run: java -jar $(JARFILE)
JFLAGS= -g JC=javac JVM=java SRCS=CrossWord.java CrossWordFrame.java tablemaker/TableMakerPanel.java PROG=CrossWord CLASSPATH=../class all: $(JC) -Xlint:all -d $(CLASSPATH) $(SRCS) run: $(SRCS) $(JVM) -cp $(CLASSPATH) $(PROG) RM=rm -f clean: $(RM) $(CLASSPATH)/*.class
all: make -C ../ run: make -C ../ run
test: javac -cp .:/usr/share/java/junit4.jar Program01Test.java java -cp .:/usr/share/java/junit4.jar org.junit.runner.JUnitCore Program01Test
Java Makefile készítő.
Az mmake beszerzése: Linuxon:
apt install mmake
Windowson:
A jar fájl elkészítéséhez, be kell állítani:
A manifest.mf fájl nekünk kell elkészíteni. Például:
Manifest-Version: 1.0 Built-By: Nagy Janos Build-Jdk: 1.8.0_181 Created-By: mcedit Main-Class: hu.zold.Program01
command.build.*.java=$(SciteDefaultHome)\bin\mingw32-make.exe command.go.*.java=cmd /C c:\Program Files\Java\jdk1.6.0\bin\java -cp . $(FileName) & pause
command.compile.*.java=c:\Program Files\Java\jdk1.6.0\bin\javac $(FileNameExt) command.go.subsystem.*.java=2
Saját változó felvétele:
javapath=p:\bin\Java\jdk1.6.0_18\bin\
Később így hivatkozok rá:
$(javapath)
A SWScite néhány saját változója:
$(SciteDefaultHome) $(FileName) $(FileNameExt)