javac不是内部或外部命令,也不是可运行的程序解决办法和踩过的一些坑

  • jdk下载和测试
  • 知其然,知其所以然:配置的目的,踩过的坑
  • 环境变量配置,仅供参考


jdk下载和测试

链接: 官网下载地址 下载安装完成后进行测试:

1.首先找到安装jdk的bin目录,在此目录下打开cmd。

cmd命令显示javac不是内部或外部 cmd中javac不是内部或外部命令_cmd命令显示javac不是内部或外部


2.输入java、javac命令测试程序是否可以正确运行。如果提示“不是内部或外部命令,也不是可运行的程序”,卸载jdk、jre重新安装。

cmd命令显示javac不是内部或外部 cmd中javac不是内部或外部命令_cmd命令显示javac不是内部或外部_02


3.在cmd窗口输入命令javac就相当于运行bin目录下的javac.exe程序

cmd命令显示javac不是内部或外部 cmd中javac不是内部或外部命令_JAVA_03

知其然,知其所以然:配置的目的,踩过的坑

我们安装完jdk以后,一般都需要配置环境变量。环境变量是什么为什么要配置环境变量环境变量要配置在哪里呢
1.环境变量(environment variables):一般是指在操作系统中用来指定操作系统运行环境的一些参数,如:临时文件夹位置和系统文件夹位置等。
2.配置环境变量的目的就是为了运行java程序的时候系统可以找到对应的运行环境,如果不配置java就运行不起来。
3.环境变量主要配置系统变量里面的path里面。path是什么呢?**path:PATH是计算机名词,功能是设备可执行文件的搜索路径。**说明:当运行一个可执行文件时,DOS会先在当前目录中搜索该文件,若找到则运行之;若找不到该文件,则根据PATH命令所设置的路径,顺序逐条地到目录中搜索该文件;

踩坑:

1.新建JAVA_HOME的时候一定要建在系统变量里面,不要建在用户变量里面!

cmd命令显示javac不是内部或外部 cmd中javac不是内部或外部命令_环境变量_04


2.以前随便按照网上配置好以后能用就没管,就是用cmd测试了java、java-version。结果想用javap命令的时候提示javap不是内部或外部命令,也不是可运行的程序。为什么会这样呢?因为我之前配置的JAVA_HOME没管用,但是为什么java命令能用呢,是因为在path里面自动配置了如图所示的路径C:\Program Files (x86)\Common Files\Oracle\Java\javapath,这个路径里面有java,实际JAVA_HOME没管用,淦!而且如图这样写环境变量的话,上面那个java路径排在前面,后面的JAVA_HOME就会失效。

cmd命令显示javac不是内部或外部 cmd中javac不是内部或外部命令_JAVA_05


3.以管理员身份运行cmd可以运行java、javac、javap等程序,但是直接打开cmd则显示不是内部或外部命令,也不是可运行的程序。比如在IntelliJ IDEA中打开Terminal,输入javap命令调试显示不是内部或外部命令,也不是可运行的程序。一条解决方案:找到jdk文件夹,然后右键属性,找到安全设置所有组或用户名,给予完全控制权限,然后重新打开cmd测试即可。

环境变量配置,仅供参考

1.添加JAVA_HOME变量,变量值是jdk的路径,放在系统变量里面。

cmd命令显示javac不是内部或外部 cmd中javac不是内部或外部命令_cmd命令显示javac不是内部或外部_06


2.编辑PATH环境变量,一个是jdk的运行程序目录,一个是jre运行环境目录。%JAVA_HOME%\bin%JAVA_HOME%\jre\bin

cmd命令显示javac不是内部或外部 cmd中javac不是内部或外部命令_cmd命令显示javac不是内部或外部_07


3.添加CLASSPATH环境变量,也是系统变量里面:.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar

cmd命令显示javac不是内部或外部 cmd中javac不是内部或外部命令_java_08


4.保存后测试一下cmd,输入java、javac等命令,这里的cmd一定是保存后重新打开cmd!!!