我下载了jdk-9.0.1_linux-x64_bin。焦油gz和jre-9.0.1_linux-x64_bin。焦油来自链接的gzhttp://www.oracle.com/technetwork/java/javase/downloads/index.html.将它们提取出来,并在/usr/local/java中发布。然后编辑/etc/profile以添加
JAVA_HOME=/usr/local/java/jdk-9.0.1
JRE_HOME=/usr/local/java/jre-9.0.1
PATH=$PATH:$JRE_HOME/bin:$JAVA_HOME/bin
export JAVA_HOME
export JRE_HOME
export PATH
整个文件看起来像
# /etc/profile: system-wide .profile file for the Bourne shell (sh(1))
# and Bourne compatible shells (bash(1), ksh(1), ash(1), ...).
if [ "$PS1" ]; then
if [ "$BASH" ] && [ "$BASH" != "/bin/sh" ]; then
# The file bash.bashrc already sets the default PS1.
# PS1='\h:\w\$ '
if [ -f /etc/bash.bashrc ]; then
. /etc/bash.bashrc
fi
else
if [ "`id -u`" -eq 0 ]; then
PS1='# '
else
PS1='$ '
fi
fi
fi
# The default umask is now handled by pam_umask.
# See pam_umask(8) and /etc/login.defs.
if [ -d /etc/profile.d ]; then
for i in /etc/profile.d/*.sh; do
if [ -r $i ]; then
. $i
fi
done
unset i
fi
JAVA_HOME=/usr/local/java/jdk-9.0.1
JRE_HOME=/usr/local/java/jre-9.0.1
PATH=$PATH:$JRE_HOME/bin:$JAVA_HOME/bin
export JAVA_HOME
export JRE_HOME
export PATH
然后输入以下命令
sudo update-alternatives --install "/usr/bin/java" "java" "/usr/local/java/jdk-9.0.1/bin/java" 1
sudo update-alternatives --install "/usr/bin/javac" "javac" "/usr/local/java/jdk-9.0.1/bin/javac" 1
sudo update-alternatives --install "/usr/bin/javaws" "javaws" "/usr/local/java/jdk-9.0.1/bin/javaws" 1
sudo update-alternatives --set java /usr/local/java/jdk-9.0.1/bin/java
sudo update-alternatives --set javac /usr/local/java/jdk-9.0.1/bin/javac
sudo update-alternatives --set javaws /usr/local/java/jdk-9.0.1/bin/javaws
source /etc/profile
reboot
现在java版本正在显示
java version "9.0.1"
Java(TM) SE Runtime Environment (build 9.0.1+11)
Java HotSpot(TM) 64-Bit Server VM (build 9.0.1+11, mixed mode)
之后我尝试安装android Studio
我收到以下消息
./studio.sh
Java HotSpot(TM) 64-Bit Server VM warning: Option UseConcMarkSweepGC was deprecated in version 9.0 and will likely be removed in a future release.
WARN: Unknown class loader: jdk.internal.loader.ClassLoaders$AppClassLoader
WARN: Unknown class loader: jdk.internal.loader.ClassLoaders$PlatformClassLoader
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by com.intellij.util.lang.UrlClassLoader (file:/home/user/Downloads/Android/android-studio/lib/util.jar) to field java.lang.ClassLoader.parallelLockMap
WARNING: Please consider reporting this to the maintainers of com.intellij.util.lang.UrlClassLoader
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
JDK Required: 'tools.jar' seems to be not in Studio classpath.
Please ensure JAVA_HOME points to JDK rather than JRE.
我建议您卸载JRE安装,只使用JDK安装。JDK包含JRE中的所有内容。安装两者都是浪费磁盘空间。。。并可能导致像你所经历的那样的问题。
卸载JRE时,请记住更新环境变量。
还值得注意的是,通过这样设置PATH,您正在绕过“替代”选择器。
尝试更改设置PATH变量的行
PATH=$PATH:$JRE_HOME/bin:$JAVA_HOME/bin
到
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
这将优先考虑JDK而不是JRE。
我已经用编辑了服务器上的文件 我已经重新登录,以下是输出的所有路径: 但是当我尝试运行我的spring boot服务器时,它给了我:
然后卸载OpenJDK并安装Oracle JDK8,现在运行时 JAVA_HOME环境变量定义不正确运行此程序需要此环境变量nb:JAVA_HOME应该指向JDK,而不是JRE 我正在运行Linux Mint 19,我确实遇到了一些与这个问题相关的Stackoverflow问题。大多数与Windows有关,一些与Linux有关。建议运行的Linux
问题内容: 我正在尝试遵循有关如何使用ant来构建和运行您的应用程序的教程。我遵循了所有步骤并创建了构建文件,但是当我尝试运行ant时,会出现此错误。 失败/home/bilal/tmp/ant/build.xml:19:无法找到Javac编译器;com.sun.tools.javac.Main不在类路径中。也许JAVA_HOME没有指向JDK。当前设置为“ / usr / lib / jvm /
您好,感谢您能提供的任何帮助。 最重要的是,我已经重新安装了java和maven,并多次重启了我的计算机和命令行。
有什么建议吗?