0

我试图执行一个makefile,它将自动运行我编写的java代码的编译前端。make文件的内容如下:

       build: compile test

compile:
javac lexer/*.java
javac symbols/*.java
javac inter/*.java
javac parser/*.java
javac main/*.java

test:
@for i in `(cd tests; ls *.t | sed -e 's/.t$$//')`;\
    do echo $$i.t;\
    java main.Main <tests/$$i.t >tmp/$$i.i;\
    diff tests/$$i.i tmp/$$i.i;\
done

 clean:
(cd lexer; rm *.class)
(cd symbols; rm *.class)
(cd inter; rm *.class)
(cd parser; rm *.class)
(cd main; rm *.class)

 yacc:
/usr/ccs/bin/yacc -v doc/front.y
rm y.tab.c
mv y.output doc

当我从 netbeans 运行 make 时,我在终端上收到此错误:

         javac lexer/*.java
           Makefile:4: recipe for target `compile' failed
           /bin/sh: javac: command not found
            make: *** [compile] Error 127


             MAKE FAILED (exit value 2, total time: 660ms)

请问我该如何解决这个问题。?

4

1 回答 1

0

该错误意味着找不到 Java 编译器 (javac)。

您的 JAVA_HOME 变量需要设置并附加到 PATH。

JAVA_HOME=C:\Program Files\Java\jdk1.7.0_06\bin 
export Path:=$(JAVA_HOME);$(Path) 

将这些行添加到 makefile 的开头。

于 2013-11-10T22:21:11.383 回答