今天在发布一个网站的时候,发现用java - jar 可以运行jar包,但是运行到一半会卡住如下图所示
但是我在idea里却可以完美的运行,于是我去查了一下资料,然后改了几个配置,最后发现还是没有用。
但是我发现了一个问题,当我用sudo java -jar的时候显示 Exception in thread "main" java.lang.ClassFormatError: SystemInfo (unrecognized class file version)(这个问题的原因,根据网上的回答应该是jdk版本过低,只需要更新jdk就ok了)
而当我不用管理员权限的时候依旧可以运行jar包但是却不能运行成功。这时候我想到了解决的办法,重装jdk,于是我花了半个小时重装了1.8版本的jdk(注:之前也是1.8),配置完环境变量之后我就就可以使用java -jar运行jar包了,但是用管理员权限的时候还是显示jdk版本过低,这时候可以用命令 sudo java -version查看自己jdk的版本。
于是我又去查资料,终于找到了原因
通过sudo执行命令,读的环境变量路径和其他用户读的环境变量是不一样的:
解决:
vi /etc/sudoers
# 把路径加入java路径
test ALL=(ALL:ALL) ALL
Defaults secure_path="/usr/local/sbin:/usr/java/jdk1.8.0_80/bin"
(:/usr/java/jdk1.8.0_80/bin是新增的,这是你安装的jdk的路径,注意改成你自己的路径)
用这个方法似乎还是没有解决我的问题,可能是我脸太黑的原因。
另一个解决办法是
在环境配置文件里加一个alias
alias sudo='sudo env PATH=$PATH'
问题完美解决!!!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)