我已经下载并“手动”安装了用于Linux64bit版本的JDK 10 (用于Ubuntu16.04),Oracle Java SE开发工具包 (注意:我想下载Java9 JDK,但不再支持它,而是被推荐到Java10SE开发工具包)。
当我尝试从终端窗口运行jshell时,我会得到以下错误,
程序'jshell‘目前尚未安装。要运行“jshell”,请让管理员安装‘OpenJDK-9-JDK-无头’包,您必须启用名为“宇宙”的组件。




当我安装了经典的java版本时,我不知道为什么要我安装openjdk。当我运行“哪个jshell”时,我不会得到任何返回的细节。
有人能帮我安装和工作jshell吗?
发布于 2018-05-10 10:06:49
JShell是一个开发工具。您应该下载并安装Java 以运行jshell,而不仅仅是。
发布于 2018-12-20 11:07:12
在Linux上,特别是在Ubuntu上,开发工具不是最好的通过apt安装的。证明该规则的例外是RVM,它纯粹通过apt安装,以便在apt之外动态下载ruby和ruby。
对于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或Ubuntu Make将安装IDE或其他开发工具。目前,最好将umake安装为snap。
其结果是首先安装SDKman,然后安装snap,然后使用snap安装umake。在umake和SDKman之间,您的工具应该是最新的。
(Ruby使用了类似的RVM,它启发了SDKman。)
发布于 2018-05-10 13:00:12
我按照上面Ernest和其他人给出的提示,设置了我的JAVA_HOME (部分如所有用户在Linux中的主页中所描述的),但也在profile.d目录中创建了一个sh脚本。谢谢你的帮助。

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

https://stackoverflow.com/questions/50270361
复制相似问题