为什么我在控制台下能使用java等命令却还要设置环境变量?

我使用linux,在任何地方都能使用javajavacjar等命令,但是却还是不能运行class文件,说是无法加载主类,网上说就是因为没有设置环境变量而造成。环境变量不就... 我使用linux,在任何地方都能使用java javac jar等命令,但是却还是不能运行class文件,说是无法加载主类,网上说就是因为没有设置环境变量而造成。
环境变量不就是为了能直接使用这些命令而设置的吗,现在我已经能在任何地方使用这些命令了,可是为什么还是需要设置环境变量呢?
展开
 我来答
qfxr7260
2014-03-26 · TA获得超过157个赞
知道答主
回答量:174
采纳率:100%
帮助的人:42.8万
展开全部
你可以使用java指令,是因为安装Java时(不管是JRE或JDK,JDK里也有JRE),会复制一个java.exe在System32文件夹(这是Windows的,我不确定linux是不是这个文件夹),所以可以使用。

javac跟jar指令则是指定path到 JDK安装目录/bin文件夹,因为那里有很多java会用到的文件,把他们都复制到System32文件夹是不切实际的(当然你也可以这样做)

至于为何无法加载主类,原因是:作业系统已经知道Java指令在哪里了,不过你的class文件呢?作业系统不知道你的class文件放哪里,所以才会无法加载主类(如果连Java指令放哪都不知道,他就不会跟你说加载主类的问题了)。

办法是:
我们设置一个classpath的环境变量(网上说没有设置的环境变量是这个,而不是path环境变量),设置方法跟path一样,指到你class文件的位置,也可以用点(.)来表示当前目录,每个路径用分号(;)隔开。

看看能不能执行class文件吧!
zhongtyler
2014-03-26 · TA获得超过4408个赞
知道大有可为答主
回答量:4384
采纳率:79%
帮助的人:892万
展开全部
java javac 可以运行,只能证明你配置了path是正确的,可是运行java还需要class_path 的环境变量。所以还是你的环境变量错了
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
winDevelop
2014-03-26 · TA获得超过112个赞
知道答主
回答量:72
采纳率:0%
帮助的人:35.3万
展开全部
看看 meta-info里的要运行的main类 对不对
还有引用的外部jar包 的路径 加进去
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
王渝兴
2014-03-26
知道答主
回答量:24
采纳率:0%
帮助的人:15.9万
展开全部
java javac 运行只能证明配置了path正确运行,java还需要class_path 环境变量,class_path是获取class文件的,你看见你的class的路径是否是正确的 我以前也遇到过类似的,把路径全部都弄正确了,就不会报错了,希望我的回答能够帮助到你
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式