我java 7并java 8在我的Windows系统上同时安装C:\Program Files\Java
在环境的路径中,我指定了这样的路径java 7.
%JAVA_HOME%/bin 哪里 JAVA_HOME = C:\Program Files\Java\jdk1.7.0_17
但是,当我输入javac -version它显示javac 1.7.0_17哪些是有道理的
但是当我这样做的 java -version时候
java version "1.8.0"
Java(TM) SE Runtime Environment (build 1.8.0-b132)
Java HotSpot(TM) 64-Bit Server VM (build 25.0-b70, mixed mode)
Run Code Online (Sandbox Code Playgroud)

知道这可能是什么问题吗?
编辑已安装的文件夹:

还有一件事echo %PATH%只发生了一次JDK,java 7并没有JRE发现它.
Mus*_*bir 19
这个问题很可能是因为你JRE在你path之前有一个JDK.这通常发生在我们添加JDK path并且不删除以前添加的JRE时.因此当你这样做java时指向JRE,当你这样做javac时指向另一个版本/ JDK(因为jre中没有javac)
编辑: - 由于您编辑了问题并且在路径中发布了没有任何JRE,您可以%JAVA_HOME%先将其复制并粘贴到路径变量中(确保它在system32路径之前),我之前遇到过这个问题(安装android sdk时)并且这样做解决了它.
从这里也找到了可能的解释: -
JRE also puts a java.exe to c:\Windows\System32, that's how first command is resolved. Second command is resolved by the C:\Program Files\Java\jdk1.7.0_02\bin entry in your PATH variable.
If (and when) you are developing from the command prompt, you have to adjust the PATH variable so that C:\Program Files\Java\jdk1.7.0_02\bin is before c:\Windows\System32.
小智 9
转到 Windows 机器中的环境变量。在用户变量中:确保将 - 您的用户变量“JAVA_HOME”值设置为“C:\Program Files\Java\jdk-xxxx\bin”,其中“jdk-xxx”是您的 jdk 版本。
在系统变量中: - 将相同的“C:\Program Files\Java\jdk-xxxx\bin”值添加到“Path”变量。确保将附加值移至所有值之上。
现在尝试运行 java -version 和 javac -version。为我工作。:) 这里我链接了我的截图
好吧,正如你所说,你的路上没有JRE,我认为where java(如果你有Windows 7)会给你C:\Windows\System32\java.exe.
java跑步尝试使用控制面板中的Java-Settings对话框更改当前处于活动状态的Java System Version.这应该改变版本java -version返回.如果这不起作用,您可能需要重新安装要运行该java命令的Java版本,明确指定路径,编写自己的包装器(如果您与包装器位于同一目录中,则可以使用)或放置C:\Windows\System32\进入路径之前的JRE路径(不知道最后一个选项是否真的很好).
包装器看起来像这样:
@"C:\Program Files\Java\jre7\bin\java.exe" %*
Run Code Online (Sandbox Code Playgroud)
并且您可以命名它java.bat(如果您在同一目录中它将起作用,或者在它PATH之前放入它C:\Windows\System32\java.exe或者您可以java7.bat将其命名并将其放在路径上的任何位置以便能够运行Java 7 JRE,如果您希望这样做.
如果要更改JAVA_HOME运行时,包装器也是一个不错的选择.
javac跑步如果要运行其他javac命中Windows + Pause并打开系统对话框进行更改,PATH则它包含JDK 8的路径而不是JDK 7.您需要重新启动命令行才能显示更改.
这都是关于$JAVA_HOME系统变量
就我而言
对于Windows
(移动 jdk8 -> jdk9 -> jdk11)我在 PATH 中留下了 jdk8 的垃圾(在 JAVA_HOME:"C:\path\java11" 之前)
所以我只是 从系统变量中删除 C:\ProgramData\Oracle\Java\javapath_jdk8
// 或者将其放在javapath_jdk11下面
对于MAC,
编辑 .zshrc 以具有
export JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk-???.jdk/Contents/Home"
Run Code Online (Sandbox Code Playgroud)
nob*_*alG -2
我想当您编写时,它会从中获取您当前用于开发目的的javac值,而当您编写时,它会从您系统上已安装的应用程序当前正在使用的值中获取值,因为在您用于开发的系统之前提到过您的系统jre7java versionversionjre8JREjre7
| 归档时间: |
|
| 查看次数: |
38026 次 |
| 最近记录: |