基本上我有:
package duck.reg.pack;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class Test extends HttpServlet {
private static final long serialVersionUID = 1L;
public Test() {
super();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.getWriter().append("Served at: ").append(request.getContextPath());
DBConnect DB = new DBConnect();
}
}
要在Test.java中调用的类:
package duck.reg.pack;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class DBConnect {
private Connection con;
private Statement st;
public DBConnect(){
System.out.println("Hi there!");
return;
}
}
文件目录位置:
C:\classes\duck\reg\pack\Test.java + DBConnect.java
问题是当我用命令编译程序时:
C:\classes\duck\reg\pack>javac -cp "C:\Users\Unknown\JavaEEWorkspace\lib\*" Test.java
抛出此错误:
Test.java:16:错误:找不到符号 DBConnect connect = new DBConnect();
我用谷歌搜索了一下,发现我可以在编译时从测试中移除.java
扩展名,然后我就这样做了但是我得到了这个错误:
错误:仅在明确请求注释处理时才接受类名称和测试' 1错误
非常感谢所有回复:)
答案 0 :(得分:1)
您需要从顶层包(位于文件系统树的根目录)运行编译器。所以cd到
cd C:\classes
然后运行
javac -cp "C:\Users\Unknown\JavaEEWorkspace\lib\*" duck\reg\pack\*.java
答案 1 :(得分:0)
我们需要使用-cp(或-classpath)选项来指定包com.yyy的基目录,以便找到DBConnect。
javac -cp "d:\lib\*" d:\myJavaProject\pkg\*.java
答案 2 :(得分:-2)
写在顶部
import duck.reg.pack.DBConnect;
在您要导入它的类中。
为什么不使用IntelliJ它会为你做这件事?