因为业务需要,在服务器上需要部署Tomcat , 部署web服务, 结果发现 jdk 11.0.1 和 jre7 出现冲突,具体表现提示如下:

Exception in thread "main" java.lang.UnsatisfiedLinkError: HelloWorld.displayHelloWorld()V
        at HelloWorld.displayHelloWorld(Native Method)
        at HelloWorld.main(HelloWorld.java:7)

这猛的一看是main方法错误,我检查了几遍代码,就一个简单的java 类 外加一个main方法,而且显示此错误,证明java jdk 和 jre 环境变量是配置成功的,下面就讲讲如何解决这个问题,我的TomCat配置过程如下:

  1. TomCat 路径如下 D:\Tomcat
  2. 配置 Tomcat 环境变量 首先配置Tomcat主执行目录 CATALINA_HOME = D:\Tomcat

java 检测类冲突 java plug-in检测到jre冲突_Java


3. 配置 PATH 增加值 %CATALINA_HOME%\bin 注意win10下配置需要选择PATH这行,然后选择编辑,新窗口中点击新建 在行尾输入 %CATALINA_HOME%\bin

java 检测类冲突 java plug-in检测到jre冲突_java 检测类冲突_02


4.到此为止,Tomcat 环境就配置完成了, 命令行中 执行 Startup , 结果出现下面提示,看提示就知道是Java jdk 和 jre 环境变量没有配置。

java 检测类冲突 java plug-in检测到jre冲突_Java_03


5. 那就开始配置 java jdk 和 jre 环境, 我们下载 jdk 11.0.1 版本, 解压缩,为了不给我们后面使用Tomcat 和 Eclipse IDE 造成困扰,我们打开 系统 和 C:\Program Files (x86)查看有没有java 目录,应该是有的,安装系统的过程中自动集成了java虚拟机环境。 但是这个版本有点低,为了不和我们的11.0.1 的 java jdk和 Jre冲突,我们先把这个java目录中的jre7目录删掉,注意:还需要把system32下的javaw.exe, javaws.exe, java.exe 三个删除了,因为这个是jre7匹配的应用程序版本, 然后把我们的 jdk-11.0.1放进java 文件夹,如果在 jdk 11.0.1没有jre文件夹,需要切换到 jdk11.0.1 下执行

bin\jlink.exe --module-path jmods --add-modules java.desktop --output jre 命令,此时就有了。

java 检测类冲突 java plug-in检测到jre冲突_Java_04


java 检测类冲突 java plug-in检测到jre冲突_JAVA_05


上面3个exe需要删除,我们使用我们11.0.1的jdk和jre的应用程序。

  1. 现在我们配置 JAVA_HOME =C:\Program Files\Java\jdk-11.0.1 点新建输入变量名 JAVA_HOME,变量值我们的java 11.0.1完整路径,然后保存。

java 检测类冲突 java plug-in检测到jre冲突_Java_06


7. 配置 CLASSPATH = .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar; 注意不要漏了前面表示本地根路径的 . (点), 也是新建变量,变量名 CLASSPATH 变量值 .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;

java 检测类冲突 java plug-in检测到jre冲突_java 检测类冲突_07

  1. 然后配置 Java 的 PATH , 选中PATH行,然后点编辑,因为是win10 需要逐行配置,所以点新建,在行尾增加两行 %JAVA_HOME%\bin %JAVA_HOME%\jre\bin 分别是jdk和jre的执行路径。

java 检测类冲突 java plug-in检测到jre冲突_JAVA_08


9.然后一路确定,然后我们测试java jdk和 jre环境, 命令行下 输入 Java 和 javac 出现下图,证明java jdk 和 jre环境配置成功!

java 检测类冲突 java plug-in检测到jre冲突_JAVA_09


10. 好了 我们弄一个记事本,写个helloword 输出方法,然后编译测试。

public class hello
{
public static void main(String[] args)
{
System.out.println(“Hello World!”);
}
}

保存为 hello.java 然后用 javac 编译成class 文件, 然后 Java hello 执行看效果,看到helloword s输出了,证明我们的java jdk 和 jre版本不一致冲突的问题解决了。

java 检测类冲突 java plug-in检测到jre冲突_java_10

11.好了 Tomcat 和 java Jdk和 Jre 环境都配置好了,我们启动Tomcat , 命令行 Startup 然后出现Tomcat的配置信息,同时弹出Tomcat 伺服程序,证明Tomcat架设成功。

java 检测类冲突 java plug-in检测到jre冲突_java_11


12. 测试下, 浏览器输入 http://127.0.0.1:8080 , 此时发现已经可以打开Tomcat配置主页了,当然,你要把Tomcat Startup 设置为开机启动,写个批处理加入启动就行了。

java 检测类冲突 java plug-in检测到jre冲突_JAVA_12

甘肃省酒泉市瓜州县, 体制内的一名软件工程师,网络工程师,系统分析师,却还在敲代码。