在 Javac 命令中的 makefile 中导入多个库
Import multiple libraries in makefile within Javac command
问题
这是我刚刚在 java、Windows 中使用 makefile 时遇到的问题。
我想用多个路径(库等)设置我的 classpath。新命令手动工作,但不是来自 makefile,这会引发此错误:
javac : no source files
例子
假设我有这个 makefile :
JFLAGS = -g
JARFLAGS = -cvfm
CLASSPATH = ./bin
LIBS = C:/java/lib/mylib.jar
SOURCEPATH = ./src/client
compileAll:
javac $(JFLAGS) -d $(CLASSPATH) -cp $(CLASSPATH)\;$(LIBS) $(SOURCEPATH )/*.java
jar $(JARFLAGS) app.jar bin/client/MANIFEST.MF bin/client/*.class
所以编译项目的命令行是:
javac -g -d ./bin -cp ./bin;C:/java/libs/lib.jar ./src/client/*.java
效果很好。
class 文件进入 ./bin 目录。它从 ./bin 和 lib.jar 库中导入 classes。它会编译 ./src/client 目录中的所有源文件。
这个命令手动运行完美,但不能从不编译任何东西的 makefile 运行。
感谢我的文本编辑器为“;”着色字符,我知道我只需要 转义(禁用)';'使用 '\' :
字符
javac -g -d ./bin -cp ./bin\;C:/java/libs/lib.jar ./src/client/*.java
现在,它在 makefile 中运行良好!
问题
这是我刚刚在 java、Windows 中使用 makefile 时遇到的问题。 我想用多个路径(库等)设置我的 classpath。新命令手动工作,但不是来自 makefile,这会引发此错误:
javac : no source files
例子
假设我有这个 makefile :
JFLAGS = -g
JARFLAGS = -cvfm
CLASSPATH = ./bin
LIBS = C:/java/lib/mylib.jar
SOURCEPATH = ./src/client
compileAll:
javac $(JFLAGS) -d $(CLASSPATH) -cp $(CLASSPATH)\;$(LIBS) $(SOURCEPATH )/*.java
jar $(JARFLAGS) app.jar bin/client/MANIFEST.MF bin/client/*.class
所以编译项目的命令行是:
javac -g -d ./bin -cp ./bin;C:/java/libs/lib.jar ./src/client/*.java
效果很好。 class 文件进入 ./bin 目录。它从 ./bin 和 lib.jar 库中导入 classes。它会编译 ./src/client 目录中的所有源文件。
这个命令手动运行完美,但不能从不编译任何东西的 makefile 运行。
感谢我的文本编辑器为“;”着色字符,我知道我只需要 转义(禁用)';'使用 '\' :
字符javac -g -d ./bin -cp ./bin\;C:/java/libs/lib.jar ./src/client/*.java
现在,它在 makefile 中运行良好!