JDK1.8进行编译操作时报错:找不到符号

package com.itcast.chapter05.session.example01;

import java.util.Collection;
import java.util.LinkedHashMap;
import java.util.Map;

/**
 * 模拟数据库
 * @author Administrator
 *
 */
public class BookDB {
	private static Map<String,Book> books = new LinkedHashMap<>();
	static {
		books.put("1",new Book("1", "javaweb开发"));
		books.put("2",new Book("2", "jdbc开发"));
		books.put("3",new Book("3", "java基础"));
		books.put("4",new Book("4", "spring开发"));
	}
	//获取所有的图书
	public static Collection<Book> getAllBook(){
		return books.values();
	}
	//根据id获得图书信息
	public static Book getBookById(String id) {
		return books.get(id);
	}
	
}
package com.itcast.chapter05.session.example01;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.Collection;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * 显示可购买的图书列表
 * Servlet implementation class ListBookServlet
 */
@WebServlet("/ListBookServlet")
public class ListBookServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    public ListBookServlet() {
        super();
    }

	protected void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {
		response.setContentType("text/html;charset=utf-8");//防止中文输出乱码
		PrintWriter pw = response.getWriter();
		Collection<Book> books = BookDB.getAllBook();//获取全部图书
		pw.write("本站提供的图书有:<br/>");
		for (Book book : books) {
			String url = "/chapter05/PurchaseServlet?id="+book.getId();
			pw.write(book.getName()+"<a href='"+url+"'>点击购买</a><br/>");
		}
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doGet(request, response);
	}

}

对ListBookServlet.java进行手动编译时,发生错误,提示找不到符号

然后我去对Book类进行编译没有出错,而当我对BookDB进行编译时,又提示错误找不到符号,请问是什么原因?

你既没有import对应的类,也没用通过包名.Book的方式调用,编译器上哪给你找Book去

因为Book,BookDB,ListBookServlet都在一个example01包下,所以我就没有import;神奇的是,现在我项目已经可以在tomcat上跑起来,但是却还是没法手动编译通过,求大佬解答。

大概和虚拟机解析包的目录有关,可以参考https://bbs.csdn.net/topics/392019202,在包的外层目录调用javac就可以通过编译了

用javac命令编译,需要的文件需要跟编译文件在同一个文件夹下。

大佬,我看了参考答案,可是还是没有生效,现在应该怎么办啊

你应该在src目录下进行编译