作为一个刚入行的程序员,最近在做短信猫发验证码的项目,在这个过程中遇到了几个由jdk和eclipse版本导致的小问题,虽然问题不大,但对于一个新人来讲也颇费了一番周折,记录下来,作为自己的一点积累,也希望能帮助有需要的同行。
1、找不到ext目录
公司给的短信猫java开发包里需要把一些jar包导入eclipse的jdk\jre\lib\ext目录下,但是我却在我的安装目录中怎么也找不到这个目录,经过搜索才发现我安装的是最新的JDK9,而坑爹的是JDK9已经没有这个目录了,甚至jdk目录下不再包含jre目录了。
这个目录的作用是 :jre\lib\ext目录包含允许扩展机制的JAR。 该机制通过扩展类加载器(该类加载器)加载了该目录中的所有JAR,该引导类加载器是系统类加载器的子进程,它加载所有应用程序类。 通过将JAR放在此目录中,可以扩展Java SE平台。 这些JAR的内容对于在此运行时映像上编译或运行的所有应用程序都可见。
Java SE 9不支持扩展机制,JDK9要怎么实现这个功能也没有查到,无奈之下只好删除JDK9,安装JDK1.8,这回终于有这个目录了。
2、运行项目出现错误:Error: A JNI error has occurred . Please check your installation and try again.
这个问题是由于找不到jdk引起的,右键项目,打开properties/java compiler,发现level版本是9,而jdk9我已经卸载了,将level改成当前版本即可。
完成后项目还是会报错的,但是不影响使用,要想彻底解决请看下面的问题3,并重新建立项目。
3、eclipse中项目报错,却找不到错误在哪。
就像这样
后来发现可能是jdk版本导致的问题,由于我先前安装的是jdk9,后来换了jdk1.8后没有在eclipse中设置。
打开Windows/java/compiler,将此处的level设置成当前版本。
这样错误的项目还是会报错,但是已经不影响使用,新建的项目也不会再出现这个问题了。
4、配置jdk1.8的环境变量也记录一下吧,以备不时之需。
应该jdk9之前都适用,jdk9就要有所不同了。
以下都在系统变量中配置