我的目录中有以下结构:
public class AppListener implements HttpSessionListener {
public void sessionCreated(HttpSessionEvent se) {
System.out.println("Session created!");
}
public void sessionDestroyed(HttpSessionEvent se) {
System.out.println("Session destroyed!");
}
在BasicTest.java中,我有这些导入:
PROJECT
- classes
tunnelvisionlabs
postgresql
PostgreSqlLexer.class
PostgreSqlLexerAtnSimulator.class
PostgreSqlLexerUtils.class
- lib
antlr-4-7.jar
- BasicTest.java
我尝试使用以下命令进行编译:
package com.tunnelvisionlabs.postgresql.test;
import com.tunnelvisionlabs.postgresql.PostgreSqlLexer;
import com.tunnelvisionlabs.postgresql.PostgreSqlLexerUtils;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import org.antlr.v4.runtime.ANTLRInputStream;
import org.antlr.v4.runtime.CommonTokenStream;
import org.antlr.v4.runtime.Lexer;
import org.antlr.v4.runtime.Token;
import org.junit.Assert;
import org.junit.Test;
我收到这些错误:
javac -cp .:./lib/* BasicTests.java
在PostgreSqlLexer和PostgreSqlLexerUtils类中,我在开头声明了这个包:
BasicTests.java:28: error: cannot find symbol
import com.tunnelvisionlabs.postgresql.PostgreSqlLexer;
^
symbol: class PostgreSqlLexer
location: package com.tunnelvisionlabs.postgresql
BasicTests.java:29: error: cannot find symbol
import com.tunnelvisionlabs.postgresql.PostgreSqlLexerUtils;
^
symbol: class PostgreSqlLexerUtils
location: package com.tunnelvisionlabs.postgresql
我的程序要查找这些类需要做什么?我尝试在lib中添加classes目录并使用与之前相同的命令,这样classpath也包含classes目录,但它不会改变任何内容。
答案 0 :(得分:0)
如果我正确阅读了您的项目结构,BasicTest.java
所在的源文件夹与lib
文件夹处于同一级别。如果是,那么您可以使用以下javac
类路径:
javac -cp .:lib/* BasicTests.java
^^^ lib/ is already where you are calling this
查看以下参考答案以获取更多信息:
Including all the jars in a directory within the Java classpath