[[oktatas:programozás:java|< Java]] ====== Java és a make parancs ====== * **Szerző:** Sallai András * Copyright (c) Sallai András, 2014, 2015, 2020 * Licenc: GNU Free Documentation License 1.3 * Web: http://szit.hu ===== Bevezetés ===== 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. ===== Példa 001 ===== Legyen a példa kedvéért a fordító a következő helyen: * p:\bin\Java\jdk1.6.0_18\bin\javac Egy nagyon leegyszerűsített Makefile így nézhet ki: all: Program01.java p:\bin\Java\jdk1.6.0_18\bin\javac Program01.java ===== Példa 002 ===== JC = javac JAVA = java SOURCES = \ Program01.java \ MainFrame.java \ MasterPanel.java \ SecondPanel.java all: $(SOURCES) $(JC) $(SOURCES) $(JAVA) Program01 ===== Példa 003 ===== 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) ===== Példa 004 ===== 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 ===== Tesztpélda ===== ==== Linux alatt ==== test: javac -cp .:/usr/share/java/junit4.jar Program01Test.java java -cp .:/usr/share/java/junit4.jar org.junit.runner.JUnitCore Program01Test ===== Függelék ===== ==== mmake ==== Java Makefile készítő. Az mmake beszerzése: Linuxon: apt install mmake Windowson: * http://www.tildeslash.com/mmake/ (2020) A jar fájl elkészítéséhez, be kell állítani: * JAR flags: cvfm * JAR File name (e.g. foobar.jar) []: prog.jar manifest.mf 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 ==== SWScite beállítás ==== === Build === 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 === Egyéb === 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) ===== Linkek ===== * http://www.cs.swarthmore.edu/~newhall/unixhelp/javamakefiles.html * http://ieng6.ucsd.edu/~cs131f/makenotes.html * http://geosoft.no/development/javamake.html * http://oucsace.cs.ohiou.edu/~bhumphre/makefile.html * http://www.cs.umd.edu/class/fall2002/cmsc214/Tutorial/makefile.html * http://www.opussoftware.com/tutorial/TutMakefile.htm * http://mrbook.org/tutorials/make/