Java プロジェクトのメイクファイルを作成する必要があります。
私のプロジェクトは基本的なものです。私のメインファイルと他のいくつかのパッケージを含むパッケージ。
その種のプロジェクト用の適切なメイクファイルを作成するのを手伝ってくれる人はいますか?
申し訳ありませんが、テストしていないため、失敗する可能性があります...
実行可能なjarファイルを生成する必要があると仮定すると、次のように動作するはずですが、テストしていません。
以下の Makefile は、ソースが ./src の下にあり、中間ファイルに ./build を使用してもよいことを前提としています (クリーン ターゲットによって完全に削除されるため、注意してください)。
次に、「make」または「make jar」で jar ファイルを生成する必要があります。
NAME=MyProject
MAIN_CLASS=MyMainClass
SRC_DIR=./src
CLS_DIR=./build/classes
MANIFEST_FILE=./build/META-INF.MF
JAR_FILE=./$(NAME).jar
SRC_FILES=$(shell find $(SRC_DIR) -iname "*.java")
CLS_FILES=$(patsubst $(SRC_DIR)/%,$(CLS_DIR)/%,$(patsubst %.java,%.class,$(SRC_FILES)))
.PHONY: jar run clean mrproper
jar : $(JAR_FILE)
run : $(JAR_FILE)
java -jar $(JAR_FILE)
$(JAR_FILE) : $(MANIFEST_FILE) $(CLS_FILES)
jar cmf $< $@ $(CLS_DIR)
$(MANIFEST_FILE) :
mkdir -p $(dir $@)
echo Main-Class: $(MAIN_CLASS) > $@
$(CLS_DIR) :
mkdir -p $(CLS_DIR)
$(CLS_DIR)/%.class : $(SRC_DIR)/%.java $(CLS_DIR)
javac -d $(CLS_DIR) -sourcepath $(SRC_DIR) $<
clean :
rm -Rf ./build
mrproper : clean
rm -f $(JAR_FILE)
Make を実行するたびに、検索操作を実行してソース ファイルのリストを取得します。これにより、ファイルの数とファイル システムの速度に応じて遅延が発生する可能性があります。問題にすべきではありません。
2 つの patsubst は 1 つの patsubst に圧縮される可能性がありますが、念のため 2 つのステップで行いました。
また、このソリューションは各 Java クラスを個別にコンパイルすることに注意してください。これは非常にコストがかかる可能性があり、理想的には、すべての src java ファイルの名前を含むファイルを作成し、それを javac に渡すことによって、すべてを一度にコンパイルする別のターゲットを用意することをお勧めします。