【问题标题】:what is CLASSPATH in make filemake 文件中的 CLASSPATH 是什么
【发布时间】:2014-05-29 06:43:01
【问题描述】:

我刚得到一个这样的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放在同一个文件夹里,然后再试一次。同样的错误又发生了.....

有人可以帮帮我吗?

谢谢

【问题讨论】:

    标签: java makefile


    【解决方案1】:
    CLASSPATH=.:/antlr.jar
    

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

    你不妨试试:

    CLASSPATH=.:./antlr.jar
    

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

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

    最重要的是,您通常运行 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。又弹出同样的错误信息。。 ...
    • 你必须export这个变量。只需在 makefile 中定义一个变量,not 会将其导出到 make 调用的程序(如 java)。使用export CLASSPATH := ...
    猜你喜欢
    • 2017-11-26
    • 2011-11-03
    • 2014-07-08
    • 1970-01-01
    • 1970-01-01
    • 2013-10-07
    • 1970-01-01
    • 2019-11-08
    • 1970-01-01
    相关资源
    最近更新 更多