Java 计划';jshell';尝试在Ubuntu上运行jshell时,当前未安装

Java 计划';jshell';尝试在Ubuntu上运行jshell时,当前未安装,java,ubuntu-16.04,jshell,Java,Ubuntu 16.04,Jshell,我已经下载并“手动”安装了JDK10 for Linux 64位版本(用于Ubuntu 16.04), (注意:我想下载java9jdk,但它不再受支持,我参考了java10se开发工具包) 当我尝试从终端窗口运行jshell时,我得到以下错误: 当前未安装程序“jshell”。运行“jshell” 请让管理员安装该软件包 “openjdk-9-jdk-headless”您必须启用名为 “宇宙” 我不知道为什么当我安装了经典的java版本时,消息会要求我安装openjdk。当我运行“wh

我已经下载并“手动”安装了JDK10 for Linux 64位版本(用于Ubuntu 16.04), (注意:我想下载java9jdk,但它不再受支持,我参考了java10se开发工具包)

当我尝试从终端窗口运行
jshell
时,我得到以下错误:

当前未安装程序“jshell”。运行“jshell” 请让管理员安装该软件包 “openjdk-9-jdk-headless”您必须启用名为 “宇宙”

我不知道为什么当我安装了经典的java版本时,消息会要求我安装openjdk。当我运行“which jshell”时,不会返回任何详细信息


有人能帮我安装并使用
jshell
吗?

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

我遵循了Ernest Kiwele和上面其他人给出的提示,并按照中所述部分设置了我的Java\u主页 也可以通过在我的profile.d目录中创建一个
sh
脚本。谢谢你的帮助

我对我的解决方案不太满意,因为我已经使用
updatealternations
配置了Java。我不知道为什么人们建议使用
updatealternations
来设置Java的版本,如果其他依赖变量没有同时设置的话


在Linux上,尤其是Ubuntu上,开发工具的最佳安装方式不是通过
apt
。证明该规则的例外情况是
RVM
,它通过
apt
安装,纯粹是为了在apt之外动态下载ruby和ruby gems

对于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:~$ 
通常,
umake
ubuntumake
将安装
IDE
或其他开发工具。目前,
umake
最好作为
snap
安装

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


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

我确实有这个功能-如果你查看我上面发布的链接,你可以看到我下载的内容。我刚刚检查了“bin”目录,可以看到其中包含“jshell”。@robbie70那么在PATH中包含/bin如何?@robbie70那么您的
PATH
变量包含JRE安装的
bin
目录。您必须更改它的值以指向JDK的bin目录。Eugene/Ernest-我的
路径中没有包含java。相反,我使用了
updatealternations
来配置我的java版本。然后必须在那里进行更改。检查:根据您的第二个屏幕截图,JShell似乎安装正确。您是否尝试使用
/JShell
在该文件夹中运行JShell?如果它有效,问题只是路径配置。谢谢Mincong-我刚刚试过,是的,它有效!我有点困惑,如果我使用“更新替代方案”来配置我的java版本——这是否只公开我配置的文件,即“java”和“javac”?为了访问
bin
目录中的所有其他文件,我是否需要将java“bin”目录显式地添加到我的路径中?对不起,我不知道更新替代方案,也不使用Linux。。。我会让其他人在这方面帮助你。唯一可以确定的是,JDK的
bin
文件夹必须存在于您的路径中,这样您就可以直接调用
jshell