如何将自定义java类导入我的Antlr语法?

在名为Test的目录中,我在Word.java文件中有一个java类,如下所示:

 public class Word { public String value; public Word(String v) { value = v; } } 

在同一目录下我的antlr4语法Test.g4是这样的:

 grammar Test; @header { import Test.Word; } @members { ArrayList words = new ArrayList(); } program @after { System.out.println(words.toString()); } : (ID { words.add(new Word($ID.text)); } )+ ; 

(在这个例子中,我只是使用Word而不是String来测试导入的东西。语法和动作不是我的问题)

现在,当我尝试运行java org.antlr.v4.runtime.misc.TestRig Test这就是结果:

blablabla

引起:java.lang.ClassNotFoundException:Test.Word

blablabla

这让我发疯,如何在.g4文件中导入我的类? 我知道可以加载默认的java包,但是如何导入我的自定义java类?

tl; dr:我创建了一个java类,想在我的antlr语法中使用它。 我怎样才能做到这一点?

您的CLASSPATH必须包含包含Test的dir。