"jshell"未被识别为内部或外部命令。

7

我在我的机器上使用'jshell'命令时,它没有被识别。但是'java'命令工作正常。在JDK 10中是否有任何环境设置来支持jshell

C:\Users\Kannan
λ jshell
'jshell' is not recognized as an internal or external command,
operable program or batch file.

C:\Users\Kannan
λ java -version
java version "10" 2018-03-20
Java(TM) SE Runtime Environment 18.3 (build 10+46)
Java HotSpot(TM) 64-Bit Server VM 18.3 (build 10+46, mixed mode)
9个回答

8

jshell是JDK 10的一部分,位于Windows上的%JAVA_HOME%\bin文件夹中。

可能出现的问题:

  1. 您仅安装了JRE 10(而不是JDK 10)。 jshell不是JRE的一部分。

  2. %JAVA_HOME%\bin不是 PATH 系统变量的一部分。

参见:Java安装的环境变量


JShell是JDK 9及以上版本的一部分。 - Chinmoy
@Chinmoy,没错;我在问题中提到了特定的标签“java-10”。感谢您的提醒。 - Alex Shesterov

5
  1. 检查您的Java环境中是否已安装jshell。 ls [JAVA-INSTALLEDPATH]/bin
  2. 如果jshell不存在,请下载适当的JDK。
  3. 如果存在jshell,请在您的环境配置文件中添加路径或使用完整路径。

3
在 Windows 系统中,ls 命令只能在 Power Shell 中使用,而不能在命令提示符中使用。 - Mark Rotteveel
谢谢@Dwight J. Browne,我已经检查了JAVA_HOME环境变量,并且它指向了jdk8路径。我不知道为什么java版本仍然显示为java 10。无论如何,问题已经解决。 - Kannan Thangadurai

3
你需要将Java开发工具包(JDK)安装的bin文件夹添加到PATH环境变量中。java命令可以正常工作,因为JRE会在C:\ProgramData\Oracle\Java\javapath\中安装一个java.exe可执行文件的副本,并将其添加到PATH中。
有关编辑PATH的详细信息,请参见超级用户上的如何在Windows 10中设置系统环境变量?

感谢 @Mark Rotteveel - Kannan Thangadurai

2
同样的问题也发生在我身上。 从Oracle网站卸载并安装正确的JDK。
步骤: 1. 控制面板 > 系统和安全 > 系统 > 更改设置 > 高级 > 更改环境变量 > 系统变量 > 新建 > 变量名:“Path” & 变量值:“C:\Program Files\Java\jdk-10.0.1\bin”(bin文件夹的地址)> 确定
你就可以开始了。 这是帮助我的视频链接。

https://www.youtube.com/watch?v=UokTaTwckDw


1

以管理员身份运行命令提示符。 窗口 -> cmd -> 以管理员身份运行,然后键入jshell。


1
除JAVA_HOME之外,当您安装JDK时,请删除环境变量中设置的任何默认路径变量。然后将您的JAVA_HOME更新为JDK 9或更高版本的路径。

1
您所拥有的是 JRE。您需要安装 JDK 并设置 JAVA_HOME。然后 jshell 将正常工作。

1

我遇到了同样的问题。我设置了JAVA_HOME,并用双引号("")将其包裹起来。

JAVA_HOME="C:\Program Files\Java\jdk1.8.0_144"

0

这里有两件事需要考虑:

  1. jshell只包含在jdk >9.0中,所以最好安装最新的LTS版本的jdk(不同于JRE)

  2. 需要设置两个环境变量JAVA_HOMEPath

JAVA_HOME应该指向安装在您的计算机上的jdk所在的位置,不包括bin文件夹

Path应该指向已安装的jdk的bin文件夹(因为jshell位于bin文件夹中)

希望这对您有所帮助...


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接