我在ubuntu里更新Android SDK時(shí),提示“sudo: java: command not found”辆毡,根據(jù)錯(cuò)誤信息我在網(wǎng)上搜索珊楼,得到了如下的信息涮俄,雖然對(duì)我沒(méi)有幫助。
Ubuntu下用sudo運(yùn)行java程序時(shí)界睁,要注意此時(shí)用戶目錄為/root觉增,而不是/home/yourname之類的。如果沒(méi)注意到這一點(diǎn)翻斟,就可能會(huì)遇到這樣一種情況:某個(gè)java相關(guān)的 把某些配置默認(rèn)放在/home/yourname逾礁,而你用sudo啟動(dòng)的java程序卻又去/root下找這個(gè)文件,結(jié)果沒(méi)找到; 而如果相關(guān)的模塊又不報(bào)錯(cuò)或者不夠高調(diào)的報(bào)錯(cuò),你就很難發(fā)現(xiàn)錯(cuò)在哪里访惜。
這種情況一般是因?yàn)槟愕膔oot用戶下沒(méi)有配置java的路徑嘹履,sudo的環(huán)境變量和普通用戶的環(huán)境變量不一樣腻扇。sudo的環(huán)境變量時(shí)集成的root用戶的,sudo對(duì)應(yīng)的PATH變量一般是:/sbin:/usr/sbin:/bin:/usr/bin植捎。
可以使用sudowhich java
-jar XX.jar試試衙解。
另外,換一種jdk的配置方法也是可以解決這個(gè)問(wèn)題的焰枢。 之前修改的/etc/profile的配置蚓峦,后來(lái)改的是/etc/environment(注意在/etc/environment中不要export PATH=...,不然會(huì)出現(xiàn)卡在登陸界面的情況)济锄。配置完/etc/environment后source /etc/environment暑椰,sudo java就可以執(zhí)行了。
ubuntu終端sudo java提示“command not found”解決辦法
里面有一個(gè)方法sudo
which java-jar XX.jar
可以代替sudo java
荐绝,其他的修改/etc/environment和/etc/environment通都沒(méi)有用一汽。
最后我在/etc目錄下發(fā)現(xiàn)/etc/sudoers
這個(gè)文件,sudo vim /etc/sudoers
發(fā)現(xiàn)內(nèi)容如下
#
# 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_reset
Defaults mail_badpass
Defaults 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 specification
root ALL=(ALL:ALL) ALL
# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL
# Allow members of group sudo to execute any command
%sudo ALL=(ALL:ALL) ALL
# See sudoers(5) for more information on "#include" directives:
#includedir /etc/sudoers.d
然后我在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
輸入如下:
azureuser@govlancode:~$ sudo java -version
java version "1.8.0_131"
Java(TM) SE Runtime Environment (build 1.8.0_131-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode)
搞定~~~~~~~~~~~~~~