Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/350.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 即使使用init(ServletConfig con),在我的servlet程序中也找不到main()方法_Java_Servlets_Web Applications - Fatal编程技术网

Java 即使使用init(ServletConfig con),在我的servlet程序中也找不到main()方法

Java 即使使用init(ServletConfig con),在我的servlet程序中也找不到main()方法,java,servlets,web-applications,Java,Servlets,Web Applications,这是我的servlet应用程序: import javax.servlet.*; import java.io.*; public class MyServ extends GenericServlet { public void init(ServletConfig con) { System.out.println("INIT"); } public void service(ServletRequest req,ServletResponse

这是我的servlet应用程序:

import javax.servlet.*;
import java.io.*;
public class MyServ extends GenericServlet
{
    public void init(ServletConfig con)
    {
        System.out.println("INIT");
    }
    public void service(ServletRequest req,ServletResponse res) throws ServletException,IOException
    {
        PrintWriter pw=res.getWriter();
        pw.println("HELLO");
        pw.close();
    }
}

当我试图编译这个程序时,我得到

在类MyServ中找不到main方法,请将main方法声明为main(字符串[]args)


我知道servlet没有main方法。我在这里犯了什么错误?

尝试使用以下命令编译servlet

javac -classpath <TOMCAT_HOME>\lib\servlet-api.jar MyTestServlet.java
javac-classpath\lib\servlet-api.jar MyTestServlet.java

将类路径设置为servlet-api.jar,然后编译

要设置类路径,请执行以下操作:

c:>set CLASSPATH=servlet api.jar;。;(在windows中)


c:>javacmyserv.java

Servlet应该部署在像tomcat这样的web容器下,并通过它们管理它们的生命周期。当您尝试将其作为独立程序运行时,它与任何其他没有main方法和编译器的普通java程序一样,如果没有main方法作为起点,编译器将无法运行。

您是在像Tomcat或Jetty这样的servlet容器中运行它吗?您不只是使用
javamyserv
来“运行”一个servlet,并期望它做些什么。我已经安装了tomcat服务器。我没有运行servlet,这只是部署doc root之前的第一步。我只是在这里编译我的类文件!我只是在这里编译我的类文件-这不是错误消息所指示的。错误消息表示它正在尝试运行类的主方法。所以它可能编译得很好。@SaiKrishna也许你正在编译并运行……对不起,我的不好。是的,这是我运行程序时的错误,编译没有任何问题。作为补充说明,与其硬编码Tomcat安装目录,不如使用Tomcat_HOME或。而且,虽然不是非常关键,但版本是在2011年11月25日发布的,当前版本(截至目前)是7.0.41A
main
method不是编译所必需的,只有当您希望将类作为独立应用程序运行时。是的,您正确地更正了它。不知何故,我的意思是只运行,而编写编译。