[[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/