中易网

为什么class文件会自动编译到web-inf下

答案:4  悬赏:0  
解决时间 2021-04-27 14:54
  • 提问者网友:敏感魔鬼
  • 2021-04-27 00:16
为什么class文件会自动编译到web-inf下
最佳答案
  • 二级知识专家网友:时光挺欠揍
  • 2021-04-27 01:45
JavaEE 服务实现商 定义Web项目结构中WEB-INF/classes为存放虚拟机加载类的入口点,这个叫做约定,现在已经被所有JavaEE服务商所采纳,这是规则,同时你所使用的工具需要实现这个过程的自动化,所以就这样了。你可以修改工具生成classes的目录,谁说不能?
全部回答
  • 1楼网友:蜜罐小熊
  • 2021-04-27 04:46
这个是tomcat的软件开发人员制定的规则。 让tomcat在web-inf的classes目录下找到这些编译文件运行。 如果你是制作者。你也可以放到meta-inf的目录下。只要改下代码让其到这个目录找到class文件运行即可。。 如果你还这么好奇。那去看看tomcat的源代码吧。
  • 2楼网友:转身→时光静好
  • 2021-04-27 03:07
j2ee规范要求,class必须放在WEB-INF\classes(注意大小写)目录下,而所有WEB中间件(Java的)都遵循此规范,所以都在放在它下面。 而自动编译到它下面,是因为编译设置决定的,eclipse默认其实是bin下,设置可以看.classpath文件,其中有指定源代码目录和类输出目录。
  • 3楼网友:情窦初殇
  • 2021-04-27 02:05
1. 确保 project->build automatically 已经被选上. 2. 如果选上了,也不好使, 使用这一招: project->clean..->选第2个clean select project, 勾上start build immediatelly 3.删除现在的项目,提前设置好编译文件输出路径,重新导入源文件,设置eclipse为保存时编译,然后在保存的时候就可以自动编译了 4.如果项目里引了某个不用的jar包,而那个包又被你删了,就会出现不报错但怎么也编译不出来class文件的情况,可以把所有包都删除,然后一个一个的再引入(需要的),不要一下子把所有包都引入来,没用的可能会引起不良后果. 5. 想删掉某个class文件重新生成,删除class文件后,但classes目录下的文件夹被其它程序打开,比如total commander。此时编译也不会通过,在problems下可能会提示“con't delete classes ……”。关掉其它程序重新编译即可。 6.还有种情况是remove掉 jre system library,重新导入即可编译。但是什么原因导致的还不清楚。 7.把build path中所有包都remove掉。然后又add jars,add libraries把需要的加进去,居然又开始编译了。 8.project->properties->java build path->source->.../web-inf/src的output folder不要默认,编辑让它指向../web-inf/classes 然后重新点击build工程即可自动编译。 个人使用此解决问题 9.再就是最重要的要看工程下面是否缺少了work目录,由于cvs控制时不把work加如版本,所以checkout后没有这个目录,要手工加上有的工程就能自动编译了.
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息