今天,碰到个怪事,在myeclipse中新建一个项目之后,结果保存之后,再查看WEB-INF/classes/,竟然里面是空的,而output路径也设的好好的啊,怪了,于是google了一下,发现有此问题的人还不少,其中有一位总结的比较详细,具体如下:
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后没有这个目录,要手工加上有的工程就能自动编译了
以上9条转自(http://www.diybl.com/course/4_webprogram/jsp/jsp_js/20090304/157796.html)
虽然总结的很好,然而我试过之后,发现还是不能解决我的问题,最后才发现原来是系统时间的问题,把时间调整过来就ok了。。。
MyEclipse无法自动编译的解决方法
关键字: myeclipse无法自动编译的解决方法
今 天通过SVN版本控制工具从服务器上更新了项目,选择的全部更新,因为开发工具都是用的MyEclipse,所以将一些MyEclipse的配置文件也从 服务器上下了下来,覆盖了本地的配置文件。导致无法自动编译,MyEclipse不识别该项目,删除重新导入项目依旧无效。弄了半天头都大了!最后由我的 老大解决了!
问题总结:
1.重新导入的项目结构与原来的不同
src 包等等都和原来的不同,打开项目主目录,中有个.classpath文件,用记事本打开会发现有一行<classpathentry kind="src" path="src"/>,估计它的意思就是说你的源文件位置,看看有没有这一行,没有一定要补上,下面就是一些jar包的导入路径,如:
//这两行也应该是MyEclipse自动生成的,JAVA运行环境 \J2EE1.4
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="con" path="com.genuitec.eclipse.j2eedt.core.J2EE14_CONTAINER"/>
//导入的JAR包位置
<classpathentry kind="lib" path="web/WEB-INF/lib/acegi-security-1.0.0-RC1.jar"/>
2.刷新项目不自动编译,将WEB-INF下面的classes文件夹中的字节码文件删除后不再重新生成
遇到此问题要检查是否有这一行
<classpathentry kind="output" path="web/WEB-INF/classes"/>
这是指定将字节码文件输出到哪,如果没指定当然不会默认给你找个地方存了。
3.以上两个步骤都做完了,但项目依旧跑不起来
这个时候你要用到MyEclipse的项目清理功能,在菜单栏里的project里有个clean,它会强制清除那些配置文件,重新生成就会正确了。
项目跑起来了,要记得做个笔记,以后遇到问题了有个参照!可能解释的并不正确,但问题确实解决了!
关于MyEclipse不能自动编译
2009-06-19 16:27
方法一 :
有时候在MyEclipse里修改了内容,但它却没有自动编译,导致修改后没有达到我们想要结果。
既然是默认是自动编译,它没有被编译,那就手动编译。
方法如下:
在MyEclipse的工具栏,找到Project---->把默认打勾的Build Automatically(自动编译,说明MyEclipse默认是自动编译的),把它的勾去掉,再找到Project---->Build All,手动编译完再把Build Automatically的勾打上。让它再默认自动编译!
方法二:
如果是tomcat服务器。把work下目录删除。清除缓存,把项目删除重新导入,重新编译
解决tomcat5和MyEclipse默认文件夹ROOT和WebRoot的冲突
1、你可以把你的应用程序放到ROOT下面。这样你就可以http://localhost:端口直接访问了
2、你可以更改server.xml文件(conf/server.xml)" debug="0" reloadable="true"/>
比如你的程序放在tomcat的webapps\CadreManagement\CadreManagement
你想访问webapps\CadreManagement\CadreManagement \ROOT\ index.jsp
只要把<Host name="localhost" appBase="webapps“
改成
<Host name="localhost" appBase="webapps/CadreManagement/CadreManagement"
3、 在web.xml中设定默认的登陆文件名,比如:index.jsp,index.html,default.html等
4、注意:eclipse+MyEclipse新建项目默认的文件夹是WebRoot,而tomcat默认的是ROOT。为了调试程序方便,可以在新建项目的时候把WebRoot改为ROOT,或者你可以更改conf\context.xml
更改项目名称后还需要做如下修改才能在Tomcat中正常启动:
右键点击项目-->Properties-->MyEclipse-->Web 将Web Context-root 内的名称更改成项目名。