当前位置: 美高梅集团手机版 > 美高梅集团 > 正文

这里我下载的是jdk-6u30-linux-i586.bin,某个java相关

时间:2019-10-07 23:45来源:美高梅集团
我在ubuntu里更新Android SDK时,提示“sudo: java: command notfound”,根据错误信息我在网上搜索,得到了如下的信息,虽然对我没有帮助。 我在ubuntu 12.04里想启动一个java程序,sudo java -jarxx

我在ubuntu里更新Android SDK时,提示“sudo: java: command not found”,根据错误信息我在网上搜索,得到了如下的信息,虽然对我没有帮助。

  我在ubuntu 12.04里想启动一个java程序,sudo java -jar xxx.jar,但是结果提示sudo:java:command not found。  

声明:以下操作是在root用户下操作。

Ubuntu下用sudo运行java程序时,要注意此时用户目录为/root,而不是/home/yourname之类的。如果没注意到这一点,就可能会遇到这样一种情况:某个java相关的 把某些配置默认放在/home/yourname,而你用sudo启动的java程序却又去/root下找这个文件,结果没找到; 而如果相关的模块又不报错或者不够高调的报错,你就很难发现错在哪里。

这种情况一般是因为你的root用户下没有配置java的路径,sudo的环境变量和普通用户的环境变量不一样。sudo的环境变量时集成的root用户的,sudo对应的PATH变量一般是:/sbin:/usr/sbin:/bin:/usr/bin。可以使用sudo which java -jar XX.jar试试。

另外,换一种jdk的配置方法也是可以解决这个问题的。 之前修改的/etc/profile的配置,后来改的是/etc/environment(注意在/etc/environment中不要export PATH=...,不然会出现卡在登陆界面的情况)。配置完/etc/environment后source /etc/environment,sudo java就可以执行了。

  Ubuntu下用sudo运行java程序时,要注意此时用户目录为/root,而不是/home/yourname之类的。如果没注意到这一点,就可能会遇到这样一种情况:某个java相关的组件把某些配置默认放在/home/yourname,而你用sudo启动的java程序却又去/root下找这个文件,结果没找到; 而如果相关的模块又不报错或者不够高调的报错,你就很难发现错在哪里。

一、下载JDK
首先,在Oracle的官网上下载JDK。

这里我下载的是jdk-6u30-linux-i586.bin,保存在/home目录下。

ubuntu终端sudo java提示“command not found”解决办法

   这种情况一般是因为你的root用户下没有配置java的路径,sudo的环境变量和普通用户的环境变量不一样。sudo的环境变量时集成的root用户的,sudo对应的PATH变量一般是:/sbin:/usr/sbin:/bin:/usr/bin。

二、删除ubuntu10.10自带的jdk
1、查看安装java的地方:
root@ubuntu:~$ cd /usr/lib/jvm
root@ubuntu:~$ ls -l
root@ubuntu:~$ rm -fr *

里面有一个方法sudowhich java-jar XX.jar可以代替sudo java,其他的修改/etc/environment和/etc/environment通都没有用。

  可以使用sudo `which java` -jar XX.jar试试。

2、删除原有的JDK 
root@ubuntu:~$ cd /usr/share/java/
root@ubuntu:~$ ls -l
root@ubuntu:~$ rm -fr /usr/share/java/* 

最后我在/etc目录下发现/etc/sudoers这个文件,sudo vim /etc/sudoers发现内容如下

  另外,换一种jdk的配置方法也是可以解决这个问题的。 之前修改的/etc/profile的配置,后来改的是/etc/environment(注意在/etc/environment中不要export PATH=...,不然会出现卡在登陆界面的情况)。配置完/etc/environment后source /etc/environment,sudo java就可以执行了。

3、删去原有链接 
到/usr/bin目录下,把原用的java、javac文件删除:
root@ubuntu:~$ cd /usr/bin
root@ubuntu:~$ ls -l
root@ubuntu:~$ rm -rf java 
root@ubuntu:~$ rm –rf javac 

## This file MUST be edited with the 'visudo' command as root.## Please consider adding local content in /etc/sudoers.d/ instead of# directly modifying this file.## See the man page for details on how to write a sudoers file.#Defaults env_resetDefaults mail_badpassDefaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin:/usr/java/jdk1.8.0_131/bin"# Host alias specification# User alias specification# Cmnd alias specification# User privilege specificationroot ALL= ALL# Members of the admin group may gain root privileges%admin ALL= ALL# Allow members of group sudo to execute any command%sudo ALL= ALL# See sudoers for more information on "#include" directives:#includedir /etc/sudoers.d

 

三、安装jdk
到jdk-6u30-linux-i586.bin目录下,执行如下命令安装jdk
root@ubuntu:~$ cd /home
root@ubuntu:~$ ls -l
root@ubuntu:~$ chmod 755 jdk-6u30-linux-i586.bin
root@ubuntu:~$ ./jdk-6u30-linux-i586.bin
按提示操作,完成安装后在当前目录下会看到jdk1.6.0_30目录,到此JDK已经安装完成。

然后我在Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin:/usr/java/jdk1.8.0_131/bin"添加了/usr/java/jdk1.8.0_131/bin

附注:  

四、配置环境变量:   

最后再次sudo java输入如下:

  (1)/etc/environment是设置整个系统的环境,而/etc/profile是设置所有用户的环境,前者与登陆用户无关,后者与登陆用户有关。系统应用程序的执行与用户环境可以是无关的,但与系统环境时相关的,所以当你登陆时,你看到的提示信息,如日期、时间信息的显示格式与系统环境的LANG是相关的,缺省LANG=en_US,如果系统环境LANG-zh_CN,则提示信息是中文的,否则是英文的。

1)、修改/etc/profile文件
执行如下命令
#vi /etc/profile 或 sudo gedit /etc/profile

azureuser@govlancode:~$ sudo java -versionjava version "1.8.0_131"Java SE Runtime Environment (build 1.8.0_131-b11)Java HotSpot 64-Bit Server VM (build 25.131-b11, mixed mode)

  (2)登陆系统时shell读取的顺序应该是/etc/profile -> /etc/environment -> $HOME/.profile -> $HOME/.env。

在/etc/profile最底部写入如下信息:
#set java environment

编辑:美高梅集团 本文来源:这里我下载的是jdk-6u30-linux-i586.bin,某个java相关

关键词: