我有02个问题:
1 - 我尝试在我的Ubuntu 14.04中运行Eclipse neon并且我收到此错误
我认为这个问题与java版本有关(Eclipse neon需要java 8)?
2 - 所以,我检查我的java版本,拿走我得到的东西
java -version
neon vi /etc/profile.d/java.sh
这是我的问题,我设置java_home = java 8但是在PATH中它仍然是java 7 !!!,你怎么想?我想要java -version = java 8
由于
答案 0 :(得分:1)
在您的Path变量中,Java 1.7的引用似乎是在Java 1.8之前给出的。 当你运行java -version时,它会在Path变量中搜索bin目录,一旦获得引用,它就会返回版本。尝试从Path变量中删除/opt/java/jdk1.7.0_21/bin,我相信它会在那之后工作。 希望这个答案可以帮助你
答案 1 :(得分:0)
java.sh似乎可以做你想做的事:设置JAVA_HOME-和PATH-环境变量。 当你启动java时,你确定它已经启动了吗?你是否手动启动并测试它是否有效呢?
答案 2 :(得分:0)
运行脚本时,我猜导出cmd只会更改该shell中的PATH,而您可能正在从另一个shell运行eclipe。另请查看eclipse.ini文件以获取eclipse版本。
答案 3 :(得分:0)
嗯,这里要记住很多事情。
首先是......无论你使用什么java_home,它仍然会首先看你的路径!你的路径是使用java7!您应该从路径中删除硬编码的java,而不是在路径中使用JAVA_HOME / bin。也许你在修改环境变量时切换用户? 也不要忘记在导出PATH之前导出JAVA_HOME!
第二......你可能有一个系统全局java,但想用其他jre运行eclipse。检查eclipse.ini中的-vm设置(通常在/etc/eclipse.ini中)
添加eclipse.ini的顶部
-vm
/opt/java/jdk1.8.0_20/bin/java
From askubuntu(关于PATH更新无效的原因)
您可以在以下几个地方定义
$PATH
:对于登录shell会话执行
/etc/environment
是一个影响所有人的纯文本文件(不是脚本) 用户~/.pam_environment
- 同样的事情,但也是用户特定的bash
执行一些可用于修改$PATH
的脚本:对于非登录交互式shell执行
~/.profile
(不要问我是什么 这意味着:)
~/.bashrc
会议的替代方案
/etc/profile
和/etc/bash.bashrc
是系统范围的~/.profile
和~/.bashrc
我在那里读到了
/etc/environment
是推荐用于定义$PATH
的地方。所以我 通常使用它。但是你的路径可能会在另一个路径中被修改 地方。BTW,当您使用
sudo
执行命令时,我认为它通常使用root
用户的$ PATH(而不是您的非特权用户的$ PATH 帐户)。那么,~/.profile
中的〜/ .pam_environment,~/.bashrc
和/root
目录也可能发挥作用。