我正在尝试在Windows上安装Antlr 4.4,目的是使用pyfuzzy,一个用于模糊逻辑的Python库,它依赖于Antlr的Python运行时来运行。我已经尝试过(天真地)获取Python(2.7)的Antlr运行时而不安装Antlr,这当然不成功。
所以我尝试按照Windows的说明安装Antlr,但是每当我尝试运行它时都会收到错误:
Error: Could not find or load main class org.antlr.v4.Tool
antlr .jar文件位于C:\ JavaLib中,两个批处理文件(antlr4.bat,grun.bat)也是按照安装说明逐字创建的。
我的CLASSPATH是(我没有开始使用CLASSPATH,因此我使用我的主Java目录和.jar文件的路径创建了一个):
C:\Program Files\Java\jdk1.7.0_21\lib;C:\Javalib\antlr4-complete.jar;
我的路径是(尽管我完全相信这是否相关):
C:\ProgramData\Oracle\Java\javapath;C:\Program Files (x86)\Intel\iCLS Client\;C:\Program Files\Intel\iCLS Client\;C:\windows\system32;C:\windows;C:\windows\System32\Wbem;C:\windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files (x86)\Intel\OpenCL SDK\2.0\bin\x86;C:\Program Files (x86)\Intel\OpenCL SDK\2.0\bin\x64;C:\MinGW\bin;C:\QtSDK\mingw\bin; C:\Software\jflex-1.5.0\bin;C:\Program Files (x86)\Git\cmd;C:\Program Files (x86)\Git\bin;C:\Python27;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\DLR\Sumo\bin\;C:\JavaLib
编辑: 切换到Antlr v 3.5.2,相应地更新了CLASSPATH,但是我仍然遇到同样的问题。 即命令 java org.antlr.Tool -3.5.2 导致同样的错误。
注意:没有使用.bat文件,因为v3安装说明没有提及。
答案 0 :(得分:0)
为我解决的问题是:将antlr jar移动到临时文件夹。即c:\ tmp 然后设置classpath = c:\ tmp \ antlr ... 出于某种原因,无论我尝试什么,它都不适用于任何"程序"目录或子目录。
答案 1 :(得分:0)
我反对使用Antlr4官方文档,主要是因为我不喜欢其他环境变量和路径混乱,而是通过将用户库和归档文件放在JDK根目录下的子目录jre/lib/ext
中来寻求Java JDK帮助。
我的系统上的示例为c:\Program Files\Java\jdk1.8.0_152\jre\lib\ext
然后在我的路径上的某个位置创建了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的自定义工具...