使用android捆绑jre的java jre jdk设置

使用android捆绑jre的java jre jdk设置,java,android,installation,Java,Android,Installation,有许多类似的问题,但我的不同,所以请在确定新问题之前阅读整个问题 捆绑JAVA jdk将自动与Android Studio 4.0.1版一起安装。我在CMD上键入java-version的所有内容都会得到以下消息 C:\Users\OceanicBlue>java -version 'java' is not recognized as an internal or external command, 这是因为JAVA_HOME没有设置,所以我尝试在Windows10机器中遵循内部环境变

有许多类似的问题,但我的不同,所以请在确定新问题之前阅读整个问题

捆绑JAVA jdk将自动与Android Studio 4.0.1版一起安装。我在CMD上键入java-version的所有内容都会得到以下消息

C:\Users\OceanicBlue>java -version
'java' is not recognized as an internal or external command,
这是因为JAVA_HOME没有设置,所以我尝试在Windows10机器中遵循内部环境变量->系统变量,但没有成功。这个问题一直存在

JAVA_HOME ->  C:\Program Files\Android\Android Studio\jre\
JAVA_HOME ->  C:\Program Files\Android\Android Studio\jre\bin
JAVA_HOME ->  C:\Program Files\Android\Android Studio\jre\jre\bin
JAVA_HOME ->  %JAVA_HOME%\bin
我可以使用Android的捆绑JDK for JAVA_HOME吗?如果没有,那么我应该下载哪个版本。Oracle强制您注册以使用其JDK11。我拒绝把我的个人信息给他们,让他们免费使用。另外,我不希望在我的机器上安装不必要的额外版本的JAVA。最终他们会引起问题

我到底想做什么?我正在尝试使用命令行编译Java程序。Android为我安装了JDK,为什么不使用它呢?不,我无法使用Android Studio中的终端屏幕编译java项目

这是因为没有设置JAVA_HOME

事实并非如此。JAVA_HOME不是巫毒魔法,windows外壳没有某种内置知识。输入的命令通过扫描PATH环境变量中
java.exe
java.com
java.bat
的每个条目来执行。没有。如果您真的希望在命令行上键入“java”时使用
C:\Program Files\Android\Android Studio\jre\bin
中的java.exe(这不会神奇地使
javac
工作,这就是为什么我怀疑这是否真的需要),那么将该目录添加到PATH变量中。家里的一切都是无用的;一些精选的过时工具有时会查看它,如果没有它,就会失败;更现代的工具可能仍然会查看它,但也会扫描其他位置,例如路径或windows注册表

而且呢就是,。。显然不是捆绑的JDK,而是捆绑的JRE,不能用于编译。它有java.exe,但不能用它来编译东西。就JRE的性质而言,它也是过时的(JRE不再是java分发方式的一部分;java8是带有JRE的最后一个版本)


注意,
javac
通常在处理android时是相对无用的;android不运行类文件。

我正在使用android Studio 4.1.1

我到底想做什么?我正在尝试使用命令行编译Java程序。Android为我安装了JDK,为什么不使用它呢

首先,它只是捆绑的JRE。它不是JDK

但是,通过在环境变量中添加两个新条目,我能够编译并运行我的
test.java

C:\Program Files\Android\Android Studio\jre\jre\bin
C:\Program Files\Android\Android Studio\jre\bin
NB:我以前从未安装过JDK。我刚刚使用了Android Studio文件夹中
JRE/bin/
present中的JRE二进制文件

请参阅附件中的图像


我认为您应该重新检查您的环境变量,或者尝试获取Android Studio的最新版本。

没有任何东西可以神奇地工作。关于JRE,我也有同样的想法,但我不确定,谢谢你为我解释清楚。你是说我不能用Android studio的捆绑JAVA做其他任何事情。早些时候,我尝试添加PATH,但再次失败。@Nathan它不是JDK,因此您无法使用它进行编译,在2020年,您应该没有理由运行任何JRE,因为“JRE”的概念已经被弃用了十年。我过去可以在我的Linux机器上使用JRE,但那是很久以前的事了。用于什么?如果是“编译”,那么,不,这就是JRE的意思:没有编译器的JDK。如果是“某个应用程序”,当然,你也可以使用这个JRE,但该应用程序使用的是过时且不受支持的部署机制。