开发Android的时候换了Eclipse开发,直接在Eclipse中建立Web应用,然后就发现用以前建立虚拟路径的方法不能用了,访问 Servlet的时候一直抛出505错误,控制台显示找不到对应Servlet的class。检查web.xml中的配置和包名,检查了一遍又一遍一遍又 一遍,都没错。。。最抓狂的事就是知道没错,但就是运行不了。。。。
后来,回去翻以前用MyEclipse建立的Web应用,对比用Eclipse建立的应用,就发现了两者的不同。MyEclipse的Web应用会将 编译后的Servlet等的class文件放置到WEB-INF目录下的classes目录,正好Tomcat寻找class就是这个路径,所以使用虚拟 路径映射后Tomcat同样能找到class文件。然而,Eclipse默认将编译后的class文件放置到build目录下的classes目录,虚拟 路径映射后,Tomcat在WEB-INF下找不到classes文件夹和class文件,自然就报错,无法加载class。
最终在坚持使用虚拟目录的情况,修改了Eclipse默认源文件编译后的目录就解决这个问题。
两种方法:
一、为项目设置.class设置输出路径
右键项目 > Properties > Java Build Path > Source > Default Output Folder
点击"Browse"时可以选择目录或新建目录用于存放.class文件
这样就设置完成.java文件编译后生成的.class文件输出路径。
设置完成后,src中的.java文件编译后生成的.class文件与package所对应的目录一起
存放在classes目录中。
二、设置全局.class文件输出路径
Window > Preferences > Java > Build Path > Source and Output Folder
如下图:
此时再新建项目的时候会自动的将.class文件放置在你所设置的目录中,如下图: