解决eclipse不能自动编译生成class文件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了解决eclipse不能自动编译生成class文件相关的知识,希望对你有一定的参考价值。

参考技术A 最近发现一个很神奇的问题,就是war项目部署服务器以后运行总是提示找不到相关的类,然后看了一下本地服务器的部署的相关目录中并没有相关类的.class文件,排查了很久,换了eclipse以及tomcat均没有效果,最终想到了是否工具中的自动编译功能没有打开。

重新编译:eclipse->Project->clean

eclipse中java文件不能编译

package xx.yy;

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class hello extends HttpServlet
public void init(ServletConfig config) throws ServletException
super.init(config);

public void service(HttpServletRequest requert,HttpServletResponse response)
throws IOException
response.setContentType("text/html;charset=GB2312");
PrintWriter out = response.getWriter();
out.println("<html><body>");
out.println("<h2>北京欢迎你!</h2>");
out.println("</body></html>");


就是这个,hello下面有红线,说是可序列化的类 hello 未声明类型为 long 的静态终态 serialVersionUID 字段,请问这是为什么,我不会用这个,怎么解决呢

参考技术A 这应该是个警告,而不应该是个错误,应该是黄线才对。

解决办法有三种:
1. 在public class hello extends HttpServlet这句上面添加下面这句:@SuppressWarnings("serial")
2. 在public class hello extends HttpServlet这句下面填上一个默认的serialVersionUID,也就是下面这句:private static final long serialVersionUID = 1L;
3. 在public class hello extends HttpServlet这句下面填上一个由eclipse生成的serialVersionUID,做法是在有黄线那个语句上悬停你的鼠标,会出现提示,选择Add generated serial version ID,就可以了。本回答被提问者采纳

以上是关于解决eclipse不能自动编译生成class文件的主要内容,如果未能解决你的问题,请参考以下文章

Eclipse不能自动编译 java文件,不会生成CLASS

eclipse编译后的class文件在哪

eclipse中java文件不能编译

Eclipse不能自动编译 java文件的解决方案

Eclipse下无法自动编译,或者WEB-INF/classes目录下没文件,编译失败的解决办法(转载)

eclipse无法编译