当前位置: 技术问答>java相关
我用javac编译老是了错???谁能帮我!!!
来源: 互联网 发布时间:2014-12-27
本文导语: 我用jdk1.2和jswdk1.1做jsp和servlet,我抄了个example:helloworld.我是用jdk下的javac命令编译的,为什么编译时才能是出错,共有三个出错提示:1.Packagk java.servlet not found import(我明明import了),2.Superclass HttpServlet of class he...
我用jdk1.2和jswdk1.1做jsp和servlet,我抄了个example:helloworld.我是用jdk下的javac命令编译的,为什么编译时才能是出错,共有三个出错提示:1.Packagk java.servlet not found import(我明明import了),2.Superclass HttpServlet of class helloworld not found.3.Public class helloworld must be defined in a file called "helloworld.java"
source code:
import java.io.*;
import java.servlet.*;
import javax.servlet.*;
public class HelloWorld extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException
{
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("");
out.println("");
out.println("");
out.println("Hello World!");
out.println("");
out.println("");
out.println("Hello World!");
out.println("");
out.println("");
}
}
source code:
import java.io.*;
import java.servlet.*;
import javax.servlet.*;
public class HelloWorld extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException
{
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("");
out.println("");
out.println("");
out.println("Hello World!");
out.println("");
out.println("");
out.println("Hello World!");
out.println("");
out.println("");
}
}
|
程序没问题,是你的配置不当。
虽然你import了一些东西,但它们没有在你的classpath目录中。
import java.servlet.*;
import javax.servlet.*;
你import的这两个类,都是jswdk的,所以你要把它们加入你的classpath中。
至于最后的要求是你这个文件要用你的类名来做文件名才行,注意大小写。
我不是用的jswdk而是用weblogic,所以我每次不是直接用javac来编译文件,我建了一个批处理,先把编译servlet所要的类库加入classpath中再调用javac来编译。
我给出你这个 build.bat文件吧,我可以参考的修改一下让它支持你的 jswdk环境。
一般就是你看一下jswdk提供的几个jar文件,用winzip打开它们,看看你要的 java.servlet.*在什么文件中,把这个文件包含入classpath中即可,(宁多勿缺)。
@ECHO OFF
set _CLASSPATH=%CLASSPATH%
set WL_HOME=D:weblogic
set JAVA_HOME=d:jdk1.3
set CLASSPATH=%CLASSPATH%;%WL_HOME%classes;
set CLASSPATH=%CLASSPATH%;%WL_HOME%libweblogicaux.jar;
set CLASSPATH=%CLASSPATH%;.;..;../..
javac %1 %2 %3
set CLASSPATH=%_CLASSPATH%
set _CLASSPATH=
|
问题1;
不要import java.servlet.*;
好象没有这个类(反正我一直没有用到)
要引用import javax.servlet.http.*;
问题2:
你把存放helloworld.java目录加到环镜变量CLASSPATH=......
你可以找一个java编辑器如FreeJava,jbuilder....来编辑*.java文件;
下面程序是可以编译运行过的。
package helloworld//相应的目录;
import java.io.*;
import javax.servlet.http.*;
import javax.servlet.*;
public class HelloWorld extends HttpServlet
{
private static final String CONTENT_TYPE = "text/html";
/**Initialize global variables*/
public void init(ServletConfig config) throws ServletException
{
super.init(config);
}
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException
{
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("");
out.println("");
out.println("");
out.println("Hello World!");
out.println("");
out.println("");
out.println("Hello World!");
out.println("");
out.println("");
}
}
不要import java.servlet.*;
好象没有这个类(反正我一直没有用到)
要引用import javax.servlet.http.*;
问题2:
你把存放helloworld.java目录加到环镜变量CLASSPATH=......
你可以找一个java编辑器如FreeJava,jbuilder....来编辑*.java文件;
下面程序是可以编译运行过的。
package helloworld//相应的目录;
import java.io.*;
import javax.servlet.http.*;
import javax.servlet.*;
public class HelloWorld extends HttpServlet
{
private static final String CONTENT_TYPE = "text/html";
/**Initialize global variables*/
public void init(ServletConfig config) throws ServletException
{
super.init(config);
}
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException
{
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("");
out.println("");
out.println("");
out.println("Hello World!");
out.println("");
out.println("");
out.println("Hello World!");
out.println("");
out.println("");
}
}