在 Ubuntu 上尝试 运行 jshell 时,当前未安装程序 'jshell'

The program 'jshell' is currently not installed when trying to run jshell on Ubuntu

我已经下载并"manually"安装了 JDK 10 Linux 64 位版本(Ubuntu 16.04), Oracle Java SE Development Kit (注意:我想下载 Java9 JDK,但这不再受支持,我转而参考了 Java 10 SE 开发工具包)。

当我从终端 window 尝试 运行ning jshell 时,出现以下错误,

The program 'jshell' is currently not installed. To run 'jshell' please ask your administrator to install the package 'openjdk-9-jdk-headless' You will have to enable the component called 'universe'

我不知道为什么我已经安装了经典java版本却提示我安装openjdk。当我 运行 "which jshell" 时,我没有收到任何返回的详细信息。

任何人都可以帮助我安装 jshell 并正常工作吗?

JShell是一个开发工具。您应该下载并安装 Java 开发工具包 到 运行 jshell,而不仅仅是 Java 运行时环境。

我按照上面 Ernest Kiwele 和其他人给出的提示设置了我的 JAVA_HOME How to set JAVA_HOME in Linux for all users 还可以在我的 profile.d 目录中创建一个 sh 脚本。谢谢你的帮助。

由于我使用 update-alternatives 配置了我的 Java,因此我对我的解决方案并不完全满意。我不知道为什么人们建议使用 update-alternatives 来设置 Java 的版本,如果没有同时设置其他依赖变量。

在 Linux,特别是 Ubuntu,最好不要通过 apt 安装开发工具。证明规则的例外是 RVM,它是通过 apt 安装的,纯粹是为了在 apt 之外动态下载 ruby 和 ruby gem。

对于 Java,等同于 SDKman,它是通过 curl 安装的。一旦你有了 SDKman 然后 你可以安装 Java 和其他 Java 类型的工具。

SDKman 在行动:

thufir@dur:~$ 
thufir@dur:~$ sdk list java
================================================================================
Available Java Versions
================================================================================
     12.ea.20-open                                                              
     11.0.1-zulu                                                                
 > * 11.0.1-open                                                                
     10.0.2-zulu                                                                
     10.0.2-open                                                                
     9.0.7-zulu                                                                 
     9.0.4-open                                                                 
   * 8.0.192-zulu                                                               
     8.0.191-oracle                                                             
     7.0.201-zulu                                                               
     6.0.119-zulu                                                               
     1.0.0-rc-10-grl                                                            
     1.0.0-rc-9-grl                                                             
     1.0.0-rc-8-grl                                                             


================================================================================
+ - local version
* - installed
> - currently in use
================================================================================
thufir@dur:~$ 

一般来说,umakeUbuntu Make会安装IDE或其他开发工具。目前,umake 最好安装为 snap

结果是先安装SDKman,再安装snap,然后用snap安装umake。在 umakeSDKman 之间,您的工具应该是最新的。

(Ruby 使用了类似的 RVM,它启发了 SDKman。)