问题:
安装JDK并配好环境后,在CMD下运行javac报错“找不到或无法加载主类com.sun.tools.javac.main”
解决:
重新安装,将JDK和JRE放在不同的文件夹下即可.即在安装JDK后不要在相同的文件夹下再安装JRE。
思考:
在同一个文件夹下同时安装jre和jdk会导致覆盖冲突,使得无法正常的调用jdk的bin目录下的javac.exe
百度的结果大都是说环境配置的问题,但是我反复检查之后并未发现问题,并且在CMD下Java -version 也是正常的。
总结:
技术问题还是用Google!
出现这个问题我们进一步会思考Java的JDK和JRE到底有什么区别。
JRE: Java Runtime Environment 顾名思义是java运行时环境,包含了java虚拟机、java基础类库等。是使用java语言编写的程序运行所需要的软件环境,是提供给想运行java程序的用户使用的。它不包含开发工具(编译器、调试器等)。
JDK:Java Development Kit 顾名思义是java开发工具包.它给开发人员提供了Java的开发环境(用于将java文件编译为class文件的编译器javac等)和运行环境(用于解析class文件使其得到运行的JVM等)。所以不仅拥有了运行Java程序的平台,也可以来开发Java程序。JDK是整个Java的核心,它包括了Java运行环境(JRE),一堆Java工具tools.jar和Java标准类库 (rt.jar)。
简而言之,如果你需要运行java程序,只需安装JRE就可以了。如果你需要编写java程序,则还需要安装JDK。
进一步发现JDK再已经包含了JRE的情况下为什么还要再装JRE呢。
原来JDK的里面的exe程序其实大部分都是用Java写的,所以在执行这些Java程序时,它需要自行依附自身所带的一套JRE才行。程序员在开发时会优先寻找“ java 、 javac ”这些命令本身的目录或者他们的父目录的 JRE,即JDK下的JRE。而用户只需执行Java程序时会使用后安装的JRE。
ps:今天是我的生日,第一次写博客,虽然之前自己从来没有在网上写过日志文章之类的,但是希望以后可以通过写技术博客的方式提升自己,共同努力和进步!