The type java.lang.CharSequence cannot be resolved. It is indirectly referenced from required .class

在学习lucene的时候,直接复制粘贴的资料中的程序:

                          tokenStream.addAttribute(CharTermAttribute.class);

环境:

Lucene4.10.3

jdk1.7/1.8

MyEclipse10,自带jdk1.6

这一行代码直接报错:The type java.lang.CharSequence cannot be resolved. It is indirectly referenced from required .class

问题的根源: down vote accepted Java 8 supports default methods in interfaces. And in JDK 8 a lot of old interfaces now have new default methods. For example, now in CharSequence we have chars and codePoints methods. If source level of your project is lower than 1.8, then compiler doesn't allow you to use default methods in interfaces. So it cannot compile classes that directly on indirectly depend on this interfaces. If I get your problem right, then you have two solutions. First solution is to rollback to JDK 7, then you will use old CharSequence interface without default methods. Second solution is to set source level of your project to 1.8, then your compiler will not complain about default methods in interfaces. ---------------------

本文来自 独孤文彬 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/t131452n/article/details/53005913?utm_source=copy

使用的MyEclipse10版本中jdk编译版本和最终运行环境不匹配,其中的CharSequence类在1.8版本中没有办法调用到原来1.7或者1.6版本jdk中的default methods

Lucene必须在1.7版本以上的jdk中运行

关键的原因:忘记了自己所装的jdk版本是1.8,这就导致(自认为的)1.7编译失败,1.6编译成功,但是无法运行的矛盾情况出现,最终发现编译失败是在1.8版本下,最后使用1.7版本jdk折中完成

 

         同一个系统下安装两个不同版本的JDK:

参考:   https://blog.csdn.net/yx1214442120/article/details/55099213

注意:(有可能需要注意的,但是不一定需要)

1.如果是从JDK1.8切换成JDK1.7,还要去系统变量里删除,C:\PROGRAMDATA\ORACLE\JAVA\JAVAPATH。(安装JDK1.8以上会自动设置环境变量)。如果不想要删除,就把自己所配置的“JAVA_HOME”放在环境变量path的最前面

2.关于CLASSPATH,我安装两个版本并没有配置(配置“ . ”表示它是当前目录)

3.%JAVA_HOME%\jre\bin; 这个有的人说需要(原文中的评论:版本不一致的时候只加%JAVA_HOME%\bin;这个没用~加上这两个%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;才版本一致 https://blog.csdn.net/yuruixin_china/article/details/53607248 ),但我也没有配置也是可以的。

4. 在安装JDK1.8时(我的电脑是先安装jdk1.6再安装的jdk1.8),会将java.exe、javaw.exe、javaws.exe三个可执行文件复制到了C:\Windows\System32目录,这个目录在WINDOWS环境变量中的优先级高于JAVA_HOME设置的环境变量优先级,所以要将这个目录中这三个文件删除。=======这个我在C:\Windows\System32目录下都没有找到这三个文件,所以也没有使用

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值