Android开发检测不到JDK的原因

PS:去下JDK8吧

什么是环境变量,这和JDK有什么关系?

 

 

环境变量是dos以前的内部命令,windows继续沿用至今。用作运行某个命令的时候,本地查找不到某个命令或文件,会到这个声明的目录中去查找。

 

就像你在cmd里面输入java显示失败(java不是内部或外部命令,也不是可运行的程序或批处理文件”),就是没有查找到相关的文件和命令(如输入java后需要用到JDK目录里的bin目录里的文件和命令)。

 

 

一般设定java的时候为了在任何目录下都可以运行bin文件夹下的命令。就将javabin目录声明到path中。

 

ps:环境变量不区分大小写(建议使用大写)

如果只是使用eclipse,就设个pathok

 

 

Warning

第一点

jdk-9之后就已经没有tools.jardt.jar了,也不需要在classpath里面配置这些jar了,配置可参考:

 

JAVA_HOME=jdk安装路径

JRE_HOME=jre安装路径

PATH= ;%JAVA_HOME%\bin;%JRE_HOME%\bin

CLASSPATH=.;%JAVA_HOME%\lib;%JRE_HOME%\lib

 

 

 

第二点

 

 

安装了jdk10没有问题,输javacjava -version能显示成功,eclipse能运行,Android Studio也能运行,但是Android SDK失败,只识别jdk81.8版本及其以下版本

1.配置path变量:

(0)如果没有classpath

假设我们要运行一个JAVA程序(hello.java)就要先把它的class文件移动到JAVA里的bin目录下  然后打开DOS,把路径改到JAVABIN目录下执行java hello.class,一次无所谓,但是每次都要这样去做未免太麻烦。

 

还好WINDOWS提供了一个PATH环境变量,他的作用就是现在这个变量的值路径中去找,如果找到了要运行的EXE就运行,否则失败。如果我们把JAVA里的bin目录这个路径赋给path那么下次我在运行java这个命令的时候,即便是直接输入DOS也能够在path变量中找到JAVAbin目录下的java指令了。

(1)配置path变量的目的

 

电脑系统将根据该变量的值找到java编程中需要的一些程序,比如javajavacjavah程序等等,其中javac程序是用于编译java源代码,java程序是用于执行后缀为class的代码。设置好PATH变量后,就可以在任何目录下执行javac/java等工具了。

 

(2)如何配置path变量?

path变量一般电脑系统都已经创建好了,所以不用新建该变量,只需在系统变量里选中到path变量,点击“选择” ->“编辑",需要注意的是,不要随便删除方框里原有的其他path值,而是先在那一大串值之后,添加一个分号,再把C:\Program Files\Java\jdk1.5.0_17\bin填上去。下面列出其键值对:

 

变量名: PATH

变量值: C:\Program Files\Java\jdk1.5.0_17\bin

2.配置classpath变量:

(0)如果没有classpath

“假设我们要运行一个JAVA程序(hello.java)就要先把它的class文件移动到JAVA里的bin目录下”,为什么要这样做呢?因为我们在用到java hello.class这条指令的时候,DOS不知道hello.class这个文件在哪里,他就先到当前目录中去找,如果找到就运行,否则失败。当然,如果说hello.javaD盘根目录下,你也可以用java D:/hello.class这条指令来运行,

 

 

但是每次这样做也确实够麻烦。WINDOWS就提供了这样一个环境变量——classpath,如果没有就应该新建一个。我们把D:/这个路径赋值给classpath,那么下次在运行java hello.java的时候就先在当前目录中到,如果找到就运行,如果找不到就在classpath的值路径下去找,找到就运行,找不到就失败。

 

(1)配置classpath的目的

 

 

一是,配置classpath变量,才能使得java解释器知道到哪里去找标准类库告诉Java执行环境,在哪些目录下可以找到您所要执行的Java程序所需要的类或者包,这些标准类库是别人已经写好了的比如我们常用到java.lang包中的类,在配置classpath变量后被设为默认导入,所以在写程序时就不用import这个包了。那么这些标准类库在哪呢?在以JDKlib目录下以jar为后缀的文件中:一个是dt.jar,一个是tools.jar

 

 

二是,设置Path变量是为了让操作系统找到指定的工具程序(.exe文件存在),则设置Classpath的目的就是让Java执行环境找到指定的Java程序(.class文件存在)

 

 

事实上JDK 5.0默认就会到当前工作目录(上面的.设置),以及JDKlib目录(这里假设是C:\Program Files\Java\jdk1.5.0_06\lib)中寻找Java程序。所以如果Java程序是在这两个目录中,则不必设置Classpath变量也可以找得到,将来如果Java程序不是放置在这两个目录时,则可以按上述设置Classpath

 

 

设置Classpath的目的,在于告诉Java执行环境,在哪些目录下可以找到您所要执行的Java程序(.class文件)

 

(2)如何配置classpath变量?

有几个方法可以设置Classpath,最简单的方法是在系统变量中新增Classpath环境变量。在

 “系统变量”下单击“新建”按钮,在“变量名”文本框中输入Classpath,在“变量值”文本框中输入Java类文件的位置。具体过程省略,下面只列出其键值对:

 

变量名: CLASSPATH

变量值: .;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\dt.jar;

 

(注意,CLASSPATH最前面是有个 “.”的,表示当前目录。用两个%包围JAVA_HOME这个变量的意思是引用变量的值,当然如果你不想这样做,也可以这样配置classpath的值为:.;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\dt.jar; 也就是用JAVA_HOME变量的值替换%JAVA_HOME%;

3.配置JAVA_HOME变量:

(1)为什么要配置

一是为了方便引用,比如,JDK安装在C:\Program Files\Java\jdk1.5.0_17目录里,则设置JAVA_HOME为该目录路径, 那么以后要使用这个路径的时候, 只需输入%JAVA_HOME%即可, 避免每次引用都输入很长的路径串; 二则是归一原则, JDK路径改变的时候, 仅需更改JAVA_HOME的变量值即可, 否则,就要更改任何用绝对路径引用JDK目录的文档, 要是万一没有改全, 某个程序找不到JDK, 后果是可想而知的----系统崩溃! 三则是第三方软件会引用约定好的JAVA_HOME变量, 不然, 你不能正常使用该软件。

 

 

(2)如何配置JAVA_HOME变量?

在系统环境变量那一栏中点击新建JAVA_HOME JAVA_HOME指向的是JDK的安装路径),变量的值实际上是JDK安装路径的根目录。具体过程省略,下面只列出其键值对:

 

变量名: JAVA_HOME

变量值:C:\Program Files\Java\jdk1.5.0_17

 

 

 

 

4.测试JDK是否安装成功

在运行中输入cmd

然后输入java version

看看是否能显示出您所配置的java版本

 

 

 

 

 

 

【参考文献】

百度知道,yp0123456789https://zhidao.baidu.com/question/351360646.html

百度知道,dear学会微笑bahttps://zhidao.baidu.com/question/1605930365893725827.html

百度百科,https://baike.baidu.com/item/CLASSPATH/5734076?fr=aladdin

百度百科,https://baike.baidu.com/item/PATH/7287515#viewPageContent

csdn,莫名守候,https://blog.csdn.net/fb281906011/article/details/8057672

csdnmandalaqazhttps://blog.csdn.net/qiudw/article/details/2282909

csdnhttps://bbs.csdn.net/topics/392347025

猜你喜欢

转载自blog.csdn.net/sandalphon4869/article/details/80032240