Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在windows上的path上有两个不同的java SDK_Java - Fatal编程技术网

如何在windows上的path上有两个不同的java SDK

如何在windows上的path上有两个不同的java SDK,java,Java,我有一个程序,它似乎只适用于更高版本的java(14.1.03),但是我不想卸载当前最新的java版本。我想知道是否有可能在Windows10的路径中有两个java实例,并且能够通过命令提示符编译程序,并选择编译程序的java实例 提前谢谢 基本上,将多个Java安装目录放到%PATH%上是行不通的 %PATH%变量是命令处理器搜索以解析命令名的目录列表。当您告诉shell运行java时,它会依次查看每个目录,直到找到与java匹配的可执行命令(例如java.exe,java.bat等)。然后它

我有一个程序,它似乎只适用于更高版本的java(14.1.03),但是我不想卸载当前最新的java版本。我想知道是否有可能在Windows10的路径中有两个java实例,并且能够通过命令提示符编译程序,并选择编译程序的java实例


提前谢谢

基本上,将多个Java安装目录放到
%PATH%
上是行不通的

%PATH%
变量是命令处理器搜索以解析命令名的目录列表。当您告诉shell运行
java
时,它会依次查看每个目录,直到找到与
java
匹配的可执行命令(例如
java.exe
java.bat
等)。然后它停止寻找

因此,如果在
%PATH%
上有Java 11和Java 14,则其中一个将比另一个更早出现在列表中。Java命令将来自该Java安装,而另一个安装(通常)将被忽略


解决方案:

一种方法是根据要立即使用的Java安装设置
%PATH%

  • 可以通过在用于启动应用程序的批处理文件中嵌入本地
    %PATH%
    设置来实现这一点
  • 你可以交互地做
  • 您可以通过使用特定于用户(或帐户)的
    %PATH%
    设置来实现
另一种方法是使用绝对命令名;e、 g.
C:/JDK11/bin/java
C:/JDK14/bin/java
而不是
java
。(当然要使用合适的路径。)


(在Linux上,有一个很好的工具叫做
alternations
,可以用来管理和切换默认命令。它使用符号链接来实现…

您的java 14.1.03
javac
可以构建与旧版本java兼容的类。@restore不适用于所有旧版本的java。谢谢,我将对此进行研究。)