Java make文件中的类路径是什么

Java make文件中的类路径是什么,java,makefile,Java,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: M

我刚得到一个这样的生成文件

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=.:/antlr.jar
并将antlr.jar放在同一文件夹中,然后重试。同样的错误又发生了

谁能帮帮我吗

谢谢

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

您可能想试试:

CLASSPATH=.:./antlr.jar
并确保它在
antlr
可执行文件期间存在。一些
make
程序将在单独的shell中执行每个命令,因此更改
类路径可能无法继续。我倾向于使用
bash
“为一个进程设置变量”方法:

除此之外,您通常运行
antlr
的方式是运行java,提供您想要运行的类,其中包括:

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

如果您有一个可执行文件(或脚本)
antlr
可以为您执行此操作,它似乎不在您的路径中。

感谢您的回复。我只是试着用你的方式。我将这些源文件Mipsim.java、MipsimLexer.class、MipsimLexerTokenTypes.class、MipsimParser、make file和antlr.jar放在同一个目录中,然后将cd放入该目录,运行makefile。再次弹出相同的错误消息…..您必须导出变量。仅仅在makefile中定义变量并不会将其导出到make调用的程序(如
java
)。使用导出类路径:=…
CLASSPATH=.:./antlr.jar antlr Mipsim.g
java -cp ./antlr.jar org.antlr.Tool Mipsim.g