eclipse中一些常见的报错处理(持续更新中……)

版权声明:本文为博主原创文章,欢迎转载,转载请注明出处。 https://blog.csdn.net/shanglianlm/article/details/51940061

本文地址:http://blog.csdn.net/shanglianlm/article/details/51940061

1 change project compliance and jre to 1.5

解决方法: eclipse中:右键你的项目–Build Path–Add Libraries–JRE System Library–Execution environment–选择JavaSE 1.6或者1.7–…

2 failed to load the jni shared library

解决方法: 一般是eclipse和JDK位数不一样。

3 xxx cannot be resolved to a type

解决方法: 1)jdk不匹配(或不存在) 项目指定的jdk为“jdk1.6.0_18”,而当前eclipse使用的是“jdk1.6.0_22”。需要在BuildPath | Libraries,中做简单调整。
2)jar包缺失或冲突 当找不到“XX”所在的jar包时,会报这个错。解决只需要找到(ctrl+点击,可能能看到jar包名称)对应jar包导入项目即可。 另外,出现相同的XX时也会报此错。可能需要调包、解包、选删。
3)eclipse查找项目类型策略所致 eclipse下,上述两条都对比过了,没有任何问题,可偏偏还报这错。这时,需要操作一下 Project | Clean… ,问题即可解决。原因是,机制所致。因为某些特殊原因,eclipse没能自动编译源代码到build/classes(或其他classes目录),导致类型查找不到。

4 The server does not support version 3.0 of the J2EE Web module specification

在eclipse中使用run->run on server的时候,选择tomcat6会报错误:The server does not support version 3.0 of the J2EE Web module specification。
这是因为 Tomcat 6.0最多支持Servlet 2.5,而现在要import的项目是3.0版本的。
解决方法如下:
在项目根目录下有一个.settings的文件夹,该文件夹下有一个org.eclipse.wst.common.project.facet.core.xml文件,内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<faceted-project>
  <fixed facet="java"/>
  <fixed facet="jst.web"/>
  <fixed facet="wst.jsdt.web"/>
  <installed facet="java" version="1.6"/>
  <installed facet="jst.web" version="3.0"/>
  <installed facet="wst.jsdt.web" version="1.0"/>
</faceted-project><installed facet="jst.web" version="3.0"/>
改为
<installed facet="jst.web" version="2.5"/>
即可

5 eclipse或Myeclipse中web项目没有run on server时怎么办?

解决方案:http://www.cnblogs.com/sonyi/p/4128805.html

6 Eclipse jar打包详解

解决方案:http://jingyan.baidu.com/article/219f4bf7d0ef87de442d3820.html

7 eclipse下设置tomcat内存大小

设置步骤如下:
1.点击eclipse上的debug图标旁边的下拉箭头
2.然后选择Run Configurations,
3.系统弹出设置tomcat配置页面,在Argument中末尾添加参数中的VM arguments中追加:
-Xms256M -Xmx512M -XX:PermSize=256m -XX:MaxPermSize=512m
参数的意思
-vmargs:说明后面是VM的参数
-Xms40m:虚拟机占用系统的最小内存
-Xmx256m:虚拟机占用系统的最大内存
-XX:PermSize:最小栈内存大小。一般报内存不足时,都是说这个太小,堆空间剩余小于5%就会警告,建议把这个稍微设大一点,不过要视自己机器内存大小来设置
-XX:MaxPermSize:最大栈内存大小。这个也适当大些
-Xmx512M的5%为25.6M,理论上要求-Xmx的数值与-XX:MaxPermSize必须大于25.6M

8 autowire异常的三个情况

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'com.zzh.entity.product.XXX': Autowiring of fields failed;

autowire异常主要由三个情况发生的
1 你的XXXServiceImpl必须以@Service或@Component注解才行。
2 自动写入的时候把接口写成实现类了
@Autowired
private XXXServiceImpl xxxServiceImpl;
应该是
@Autowired
private XXXService xxxService ;
3 在XXXDao 类上加上@Repository注解

9 Tomcat在eclipse中起动成功,主页却打不开

症状:
tomcat在eclipse里面能正常启动,而在浏览器中访问http://localhost:8080/不能访问,且报404错误。同时其他项目页面也不能访问。
关闭eclipse里面的tomcat,在tomcat安装目录下双击startup.bat手动启动tomcat服务器。访问htt://localhost:8080/能正常访问tomcat管理页面。
症状原因:
eclipse将tomcat的项目发布目录(tomcat 目录中的webapp)重定向了,所以你会发现在tomcat安装目录下的webapp目录里面找不到你的项目文件。
解决办法

重新配置下tomcat服务器:
在eclipse中的server页面,双击tomcat服务,会看到如图所示的配置页面:
这里写图片描述
可以看到红圈中选择的是 Use workspace metadata(does not modify Tomcat installion)。
但是有时候会发现这红圈中的选项会灰掉不能修改,这是因为该tomcat中部署了项目,要修改必须得先把tomcat中的部署的项目都移除。如图:
这里写图片描述
通过右键单击tomcat服务器选择 Add and Remove,在弹出的对话框中移除已部署的项目。

移除完确定后,将看到上面的选项面板部分可编辑了。(注意,此时Tomcat必须处于运行状态才可以编辑)
1.选择Use tomcat installation(Task control of Tomcat installation) 即选择tomcat的安装目录来作为项目的发布目录。
2.看到”Deploy Path”了没?它后面的值默认是”wtpwebapps”,把它改成”webapps”,也就是 tomcat中发布项目所在的文件夹名字。
3.修改后关掉该页面,保存配置。这样就将项目部署到了tomcat安装目录下的webapp
4.重启tomcat服务器,访问http://localhost:8080则能正常访问了,自己部署的项目也能正常访问了。
这一部分转载自:http://www.cnblogs.com/TTTTT/p/5902890.html

10 eclipse 不自动编译项目

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后没有这个目录,要手工加上有的工程就能自动编译了

最开始的时候,我只找到了前面7个方法,但是他们都没有解决我的问题.无意中我打开了”Problems”标签,发现里面说缺少work目录,手工加上,然后刷新项目就可以了.
这一部分转载自:http://blog.sina.com.cn/s/blog_4586764e0100fqhn.html

11 无法引入import com.sun.management.OperatingSystemMXBean

现象:在JDK的安装包的jre\lib\rt.jar包里确实有这个类com.sun.management.OperatingSystemMXBean,但是就是不能import com.sun.management.OperatingSystemMXBean

答案:
Eclipse默认把这些受访问限制的API设成了ERROR。只要把Windows-Preferences-Java-Complicer-Errors/Warnings里面的Deprecated and restricted API中的Forbidden references(access rules)选为Warning就可以编译通过。

找不到 sun.misc.BASE64Decoder 和 sun.misc.BASE64Encoder 处理方式同上。

12 No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?#

进入 Window > Preferences > Java > Installed JREs 将默认jre路径更改为jdk目录。

13 Comparison method violates its general contract!

自定义的排序算法没有考虑 == 的情况,建议改为
Collections.sort(list, new Comparator<Integer>() {  
    @Override  
    public int compare(Integer o1, Integer o2) {  
        // return o1 > o2 ? 1 : -1;  
        return o1.compareTo(o2);// 正确的方式  
    }  
});  

14 Failed to load the JNI shared library

这里写图片描述
JDK和Eclipse版本不一致导致,如果确认版本一直,确认Eclipse文件是否损坏。

15 error:could not create the java machine.Error: A fatal exception has occurred. program will exit.

这里写图片描述
删掉 C:\Windows\System32目录下的java.exe、javaw.exe、javaws.exe三个文件即可。
常见与安装过32位JDK又改为64位JDK之后。

16 Version 1.7.0_80 of the JVM is not suitable for this product.Version: 1.8 or greater is required.

这里写图片描述
将-Dosgi.requiredJavaVersion=1.8
改为
-Dosgi.requiredJavaVersion=1.7即可

猜你喜欢

转载自blog.csdn.net/shanglianlm/article/details/51940061