我正在尝试在Windows上安装Antlr 4.4,目的是使用pyfuzzy,这是一个用于模糊逻辑的Python库,依赖于Antlr的Python运行时来运行。我试图(天真地)在不安装 Antlr 的情况下获取 Python (2.7) 的 Antlr 运行时,这当然没有成功。
所以我尝试按照 Windows 的说明安装 Antlr,但每次尝试运行它时都会收到错误:
Error: Could not find or load main class org.antlr.v4.Tool
antlr .jar 文件在 C:\JavaLib 中,两个批处理文件(antlr4.bat、grun.bat)也是从安装说明中逐字创建的。
我的类路径是(我没有 CLASSPATH 开始,所以我用我的主 Java 目录和.jar文件的路径创建了一个):
C:Program FilesJavajdk1.7.0_21lib;C:Javalibantlr4-complete.jar;
我的路径是(尽管我完全确定这是否相关):
C:ProgramDataOracleJavajavapath;C:Program Files (x86)InteliCLS Client;C:Program FilesInteliCLS Client;C:windowssystem32;C:windows;C:windowsSystem32Wbem;C:windowsSystem32WindowsPowerShellv1.0;C:Program FilesIntelIntel(R) Management Engine ComponentsDAL;C:Program FilesIntelIntel(R) Management Engine ComponentsIPT;C:Program Files (x86)IntelIntel(R) Management Engine ComponentsDAL;C:Program Files (x86)IntelIntel(R) Management Engine ComponentsIPT;C:Program Files (x86)IntelOpenCL SDK2.0binx86;C:Program Files (x86)IntelOpenCL SDK2.0binx64;C:MinGWbin;C:QtSDKmingwbin; C:Softwarejflex-1.5.0bin;C:Program Files (x86)Gitcmd;C:Program Files (x86)Gitbin;C:Python27;%SystemRoot%system32;%SystemRoot%;%SystemRoot%System32Wbem;%SYSTEMROOT%System32WindowsPowerShellv1.0;C:Program Files (x86)DLRSumobin;C:JavaLib
编辑:已切换到Antlr v 3.5.2,相应地更新了CLASSPATH,但是我仍然遇到同样的问题。 即命令java org.antlr.Tool -3.5.2导致相同的错误。
注意:没有更新.bat文件,因为v3安装说明没有提到它们。
为我解决的是:将antlr jar移动到临时文件夹。 即 c:\tmp然后设置 Classpath = C:\tmp\antlr...出于某种原因,无论我尝试什么,它都无法在任何"程序"目录或子目录中工作。
我反对官方的Antlr4文档,主要是因为我不喜欢额外的环境变量和路径混乱,并通过将用户库和存档放入JDK根目录下的子目录中jre/lib/ext
来寻求Java JDK的帮助。
我的系统上的示例c:Program FilesJavajdk1.8.0_152jrelibext
然后在我路径上的某个地方创建了一个antlr4.cmd文件:
@echo off
java org.antlr.v4.Tool %*
grun.cmd 非常相似(也是我道路上的某个地方):
@echo off
java org.antlr.v4.gui.TestRig %*
用法与官方文档相同:
antlr4 Hello.g4
javac Hello*.java
grun Hello r -tree
然后我开始为VS2019定制工具...