因为业务需要,在服务器上需要部署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配置过程如下:
- TomCat 路径如下 D:\Tomcat
- 配置 Tomcat 环境变量 首先配置Tomcat主执行目录 CATALINA_HOME = D:\Tomcat
3. 配置 PATH 增加值 %CATALINA_HOME%\bin 注意win10下配置需要选择PATH这行,然后选择编辑,新窗口中点击新建 在行尾输入 %CATALINA_HOME%\bin
4.到此为止,Tomcat 环境就配置完成了, 命令行中 执行 Startup , 结果出现下面提示,看提示就知道是Java jdk 和 jre 环境变量没有配置。
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 命令,此时就有了。
上面3个exe需要删除,我们使用我们11.0.1的jdk和jre的应用程序。
- 现在我们配置 JAVA_HOME =C:\Program Files\Java\jdk-11.0.1 点新建输入变量名 JAVA_HOME,变量值我们的java 11.0.1完整路径,然后保存。
7. 配置 CLASSPATH = .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar; 注意不要漏了前面表示本地根路径的 . (点), 也是新建变量,变量名 CLASSPATH 变量值 .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;
- 然后配置 Java 的 PATH , 选中PATH行,然后点编辑,因为是win10 需要逐行配置,所以点新建,在行尾增加两行 %JAVA_HOME%\bin %JAVA_HOME%\jre\bin 分别是jdk和jre的执行路径。
9.然后一路确定,然后我们测试java jdk和 jre环境, 命令行下 输入 Java 和 javac 出现下图,证明java jdk 和 jre环境配置成功!
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版本不一致冲突的问题解决了。
11.好了 Tomcat 和 java Jdk和 Jre 环境都配置好了,我们启动Tomcat , 命令行 Startup 然后出现Tomcat的配置信息,同时弹出Tomcat 伺服程序,证明Tomcat架设成功。
12. 测试下, 浏览器输入 http://127.0.0.1:8080 , 此时发现已经可以打开Tomcat配置主页了,当然,你要把Tomcat Startup 设置为开机启动,写个批处理加入启动就行了。
甘肃省酒泉市瓜州县, 体制内的一名软件工程师,网络工程师,系统分析师,却还在敲代码。