我在mac os上使用antlr4,我是按照github https://github.com/antlr/antlr4/blob/master/doc/getting-started.md上的入门文档安装的。
测试工作正常,但输入以下任何命令时:
$ grun grammar rule –gui
$ grun grammar rule –tree
$ grun grammar rule –tokens
显示此错误:
Exception in thread "main" java.nio.file.NoSuchFileException: –gui
at java.base/sun.nio.fs.UnixException.translateToIOException(UnixException.java:92)
at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:111)
at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:116)
at java.base/sun.nio.fs.UnixFileAttributeViews$Basic.readAttributes(UnixFileAttributeViews.java:55)
at java.base/sun.nio.fs.UnixFileSystemProvider.readAttributes(UnixFileSystemProvider.java:145)
at java.base/java.nio.file.Files.readAttributes(Files.java:1755)
at java.base/java.nio.file.Files.size(Files.java:2369)
at org.antlr.v4.runtime.CharStreams.fromPath(CharStreams.java:86)
at org.antlr.v4.gui.TestRig.process(TestRig.java:162)
at org.antlr.v4.gui.TestRig.main(TestRig.java:119)
可能是什么问题?
答案 0 :(得分:0)
由于我没有足够的声誉,我将不得不发布答案。你有没有进入gui文件所在的正确目录,并先运行此代码?
$ antlr4 run.g4
$ javac run*.java
Java文件将不存在会抛出NoSuchFileException,因为它尚未编译。
另一个注意事项可能是 - 树首先被称为gui。您是否尝试过以不同的顺序运行它们?
最后,我注意到存储库中的测试在文件和-tree或-gui之间有一个“r”。你也试过了吗?我不认为你的安装有什么问题,因为你说你测试它并且它有效,所以它必须是那个Java文件的错误。