我正在尝试在Windows上为Python 3安装antlr4。我成功地运行了以下
但是当我尝试从命令行运行
我已经验证了我的路径变量是否符合预期......而且我在Miniconda环境中运行其他通过pip安装的软件包也没有问题。我还尝试通过CMD将其安装到Windows上的主Python安装,也可以顺利安装......但是运行时返回相同的反应。我也在我的Mac上尝试过,同样也有这个问题。
我假设antlr4构建存在问题,但是在继续之前,我想确定我没有漏掉任何东西。
更新0 @Bart的回答是正确的,但现在我无法运行.jar文件。它抛出一个错误,说我的Java已经过时(我是52版本的类文件,而它需要55版本)。但我有Java 1.8,应该比这更高。以下是错误信息:
pip
命令:pip install antlr4-python3-runtime
。安装软件包没有问题。我正在使用Miniconda环境,并且文件位于预期位置。但是当我尝试从命令行运行
antlr4
时,却返回错误:"antlr4不被识别为内部或外部命令,可执行程序或批处理文件"。我已经验证了我的路径变量是否符合预期......而且我在Miniconda环境中运行其他通过pip安装的软件包也没有问题。我还尝试通过CMD将其安装到Windows上的主Python安装,也可以顺利安装......但是运行时返回相同的反应。我也在我的Mac上尝试过,同样也有这个问题。
我假设antlr4构建存在问题,但是在继续之前,我想确定我没有漏掉任何东西。
更新0 @Bart的回答是正确的,但现在我无法运行.jar文件。它抛出一个错误,说我的Java已经过时(我是52版本的类文件,而它需要55版本)。但我有Java 1.8,应该比这更高。以下是错误信息:
C:\Users\mathg>java -jar C:\Users\mathg\miniconda3\Scripts\antlr-4.10.1-complete.jar -help
Error: A JNI error has occurred, please check your installation and try again
Exception in thread "main" java.lang.UnsupportedClassVersionError: org/antlr/v4/Tool has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$100(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source)
更新1 我进行了更多的挖掘,并按照antlr4: Getting Started中的安装说明操作。更新了所有环境变量,按要求创建了.bat文件,然后再次运行...但即使现在它已经在我的PATH中了,仍然出现相同的错误。可能是我Java安装有问题,但我确实进行了干净的重新安装。我在GitHub上找到了一个类似的问题,但似乎已经解决了。相关的antlr4 GitHub问题
更新2 解决运行antlr4 .jar文件的问题的答案是重新安装早期版本的Java。这完全解决了问题。如果其他人也遇到了这个问题,请查看我发布的GitHub问题链接。
java -jar ....complete.jar -Dlanguage=Python3 *.g4
等等。你只需要设置好Python3和Pip,运行pip install antlr4-tools
,然后你就可以直接运行antlr4 -Dlanguage=Python3 *.g4
而不用担心运行工具的正确Java版本。 "antlr4"命令行工具会自动下载一切。 - kaby76