什么是make文件中的CLASSPATH

时间:2014-05-29 06:43:01

标签: java makefile

我刚买了一个这样的makefile

CLASSPATH=.:/usr/share/java/antlr.jar

Mipsim.class: Mipsim.java MipsimLexer.class MipsimLexerTokenTypes.class MipsimParser.class Memory.class Processor.class
    javac -classpath .:/usr/share/java/antlr.jar Mipsim.java

Memory.class: Memory.java MemoryAccessible.class
    javac Memory.java

Processor.class: Processor.java
    javac Processor.java

MemoryAccessible.class: MemoryAccessible.java
    javac MemoryAccessible.java

MipsimLexer.java MipsimLexerTokenTypes.java MipsimParser.java: Mipsim.g
    antlr Mipsim.g

MipsimLexerTokenTypes.class: MipsimLexerTokenTypes.java
    javac MipsimLexerTokenTypes.java

MipsimLexer.class: MipsimLexer.java
    javac MipsimLexer.java

MipsimParser.class: MipsimParser.java
    javac MipsimParser.java

clean:
    rm -f *.class MipsimLexer.* MipsimLexerTokenTypes.* MipsimParser.*

我必须运行这个make文件,并构建目标代码。 然而,终端告诉了这个

  antlr Mipsim.g
  make: antlr: No such file or directory
  make: *** [MipsimLexer.java] Error 1

我想在这种情况下可能无法找到anrlr.jar。所以我只是将CLASSPATH改为

CLASSPATH=.:/antlr.jar

并将antlr.jar放在同一个文件夹中,然后再次尝试。同样的错误又发生了......

有人可以帮帮我吗?

由于

1 个答案:

答案 0 :(得分:0)

CLASSPATH=.:/antlr.jar

那不行。它说使用当前目录和 root 文件系统中的antlr.jar文件(可能不存在)。

您可能想尝试:

CLASSPATH=.:./antlr.jar

并确保它在antlr可执行文件的持续时间内存在。一些make程序将在单独的shell中执行每个命令,因此更改CLASSPATH可能无法继续执行。我倾向于将bash“set变量用于一个进程”方法:

CLASSPATH=.:./antlr.jar antlr Mipsim.g

最重要的是,你通常运行antlr的方法是运行java,给你想要运行的类,例如:

java -cp ./antlr.jar org.antlr.Tool Mipsim.g

如果你有一个可执行文件(或脚本)antlr,它会为你做这件事,它似乎不在你的道路上。