鱼C论坛

 找回密码
 立即注册
查看: 5821|回复: 16

[已解决]Java环境变量配置

[复制链接]
发表于 2017-2-9 14:26:47 | 显示全部楼层 |阅读模式
0鱼币
问个超蠢的问题……

Java环境变量这么配置哪里错了?
QQ截图20170209141813.png

QQ截图20170209141915.png

CLASSPATH:
.;D:\Java\jdk1.8.0_112\lib\dt.jar;D:\Java\jdk1.8.0_112\lib\tools.jar;


补充:安装应该是没问题的,因为直接在盘目录下是可以的
QQ截图20170209142108.png


但是直接来就不行了……
QQ截图20170209142403.png

不明白为啥?之前那台电脑明明也是这么配置的就可以的……
最佳答案
2017-2-9 14:26:48
糯米糯 发表于 2017-2-9 16:56
哦,这里面是rt.jar,我是dt,但是我改了一下还是不行……崩溃

按照你的意思,Java 源代码文件不管存放在哪里,只要你在 cmd 下都能编译运行,那岂不乱套了,

classpath 变量存放的是 .class 文件所在的目录,如果你把 .class 文件所在目录的文件路径添加到

classpath 变量里,那么就可以在其它文件夹下编译运行,如果 .class 文件不在这个目录下,而在其

它目录下呢?那岂不是还要把现在的文件路径再次添加到 classpath 变量里。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-2-9 14:26:48 | 显示全部楼层    本楼为最佳答案   
糯米糯 发表于 2017-2-9 16:56
哦,这里面是rt.jar,我是dt,但是我改了一下还是不行……崩溃

按照你的意思,Java 源代码文件不管存放在哪里,只要你在 cmd 下都能编译运行,那岂不乱套了,

classpath 变量存放的是 .class 文件所在的目录,如果你把 .class 文件所在目录的文件路径添加到

classpath 变量里,那么就可以在其它文件夹下编译运行,如果 .class 文件不在这个目录下,而在其

它目录下呢?那岂不是还要把现在的文件路径再次添加到 classpath 变量里。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-2-9 15:13:12 | 显示全部楼层
请问这个 Hello.java 文件在哪个文件目录下?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-2-9 15:14:28 | 显示全部楼层
如果你放在桌面,请在 cmd 下输入 cd Desktop 回车

再输入 javac Hello.java
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2017-2-9 15:31:01 | 显示全部楼层
这个我知道,我就是想要方便一点配置了环境变量之后不管放在哪里都能直接编译运行,不用输路径什么,然后配不出来
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-2-9 15:38:49 | 显示全部楼层
本帖最后由 零度非安全 于 2017-2-9 15:44 编辑
糯米糯 发表于 2017-2-9 15:31
这个我知道,我就是想要方便一点配置了环境变量之后不管放在哪里都能直接编译运行,不用输路径什么,然后配 ...


这个不行的,首先你要搞明白为什么要设置环境变量?因为设置好了环境变量后,

那么你可以在 cmd 任意文件夹下面运行 javac.exe 和 java.exe 以及 bin 目录下的可执行文件

但是 Java 的源代码文件是不行的,这两个有区别,你要编译运行该源文件,你就必须先进入

该源文件所在的目录下,再用以上 bin 目录下文件提供的程序执行源代码文件。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2017-2-9 15:55:01 | 显示全部楼层
零度非安全 发表于 2017-2-9 15:38
这个不行的,首先你要搞明白为什么要设置环境变量?因为设置好了环境变量后,

那么你可以在 cmd 任 ...

可是我在自己的电脑上就是配置了环境变量之后,无论文件保存在哪里,直接win+r快捷键打开cmd然后输入javac、java命令就能编译运行的

而且我以为环境变量设置的意义是为了可以一劳永逸地编译执行任意目录下的文件啊,不然的话直接在文件目录按shift右键在此处打开命令行窗口就好了啊,这样不用配置环境变量不是也可以编译执行文件?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-2-9 16:06:03 | 显示全部楼层
糯米糯 发表于 2017-2-9 15:55
可是我在自己的电脑上就是配置了环境变量之后,无论文件保存在哪里,直接win+r快捷键打开cmd然后输入java ...


就算你按 shift 右键在此处打开命令窗口直接编译执行文件时,若没有配置环境变量,会报错的

系统找不到 Java 的编译器 javac.exe,Path 变量里的路径是为了让系统能够执行该路径下有的命令

当你直接在 cmd 下输入某个命令时,系统会在 Path 变量所有目录里找到该命令,若没有找到就报错

Java 的源文件 xxxxx.java 它不是一个命令
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2017-2-9 16:34:32 | 显示全部楼层
零度非安全 发表于 2017-2-9 16:06
就算你按 shift 右键在此处打开命令窗口直接编译执行文件时,若没有配置环境变量,会报错的

系统找 ...

额,没表达清楚...我说的是配置path,然后不配置classpath的情况下,就是classpath配置的意义

然后想请问,大大的意思是,只要能执行程序就可以直接进行像EditPlus这种软件的安装,然后不会影响后续的使用了吗?如果在cmd中每次都要输入文件所在路径才找得到的情况下,直接安装EditPlus设置参数可以找到文件吗?还是说要在EditPlus中进行另外的相关配置?

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-2-9 16:49:35 | 显示全部楼层
糯米糯 发表于 2017-2-9 16:34
额,没表达清楚...我说的是配置path,然后不配置classpath的情况下,就是classpath配置的意义

然后想 ...

下面这段已经够详细了,我一直以来都是在 cmd 下编译运行,但在做项目的时候才用开发环境,以前学 C 在用 Vim。

Java 执行环境本身就是一个平台,执行于这个平台上的程序是已编译完成的 Java 程序(后面会介绍到 Java 程序编译完成

之后,会以.class文件存在)。如果将 Java 执行环境比喻为操作系统,如果设置 Path 变量是为了让操作系统找到指定的工

具程序(以 Windows 来说就是找到 .exe 文件),则设置Classpath的目的就是让 Java 执行环境找到指定的 Java 程序

(也就是 .class 文件)。

有几个方法可以设置 Classpath,最简单的方法是在系统变量中新增 Classpath 环境变量。在“系统变量”下单击“新建”

按钮,在“变量名”文本框中输入 Classpath,在“变量值”文本框中输入 Java 类文件的位置。例如可以输入

“.;C:\Program Files\Java\jdk1.5.0_06\lib\tools.jar; C:\Program Files\Java\jdk1.5.0_06\lib\rt.jar”( jar 文件是 zip

压缩格式,其中包括 .class 文件和 jar 中的 Classpath 设置),每一路径中间必须以;作为分隔。

事实上 JDK 5.0 默认就会到当前工作目录(上面的.设置),以及 JDK 的 lib 目录(这里假设是 C:\Program Files

\Java\jdk1.5.0_06\lib)中寻找 Java 程序。所以如果 Java 程序是在这两个目录中,则不必设置 Classpath 变量也可以

找得到,将来如果 Java 程序不是放置在这两个目录时,则可以按上述设置Classpath。

如果所使用的 JDK 工具程序具有 Classpath 命令选项,则可以在执行工具程序时一并指定 Classpath。例如:

javac -classpath classpath1;classpath2... 其中 classpath1、classpath 2 是实际要指定的路径。也可以在命令符模式

下执行以下的命令,直接设置环境变量,包括 Classpath 变量(这个设置在下次重新打开命令符模式时就不再有效):

set CLASSPATH=%CLASSPATH%;classpath1;classpath2... 总而言之,设置 Classpath 的目的,在于告诉 Java 执行

环境,在哪些目录下可以找到您所要执行的 Java 程序(.class文件)。

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2017-2-9 16:53:00 | 显示全部楼层
零度非安全 发表于 2017-2-9 16:49
下面这段已经够详细了,我一直以来都是在 cmd 下编译运行,但在做项目的时候才用开发环境,以前学 C 在用 ...

我就是这么配置的………然而不能用啊……所以就想问问各位大神是为啥,感觉也没有配错来着
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2017-2-9 16:56:58 | 显示全部楼层
零度非安全 发表于 2017-2-9 16:49
下面这段已经够详细了,我一直以来都是在 cmd 下编译运行,但在做项目的时候才用开发环境,以前学 C 在用 ...

哦,这里面是rt.jar,我是dt,但是我改了一下还是不行……崩溃
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-2-9 17:10:25 | 显示全部楼层
糯米糯 发表于 2017-2-9 16:53
我就是这么配置的………然而不能用啊……所以就想问问各位大神是为啥,感觉也没有配错来着

你还是参看下面这篇文章吧

http://blog.csdn.net/cheney521/article/details/8672066
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-2-10 16:33:59 | 显示全部楼层
楼主对环境变量的理解有偏差
环境变量配置的意义是命令可以在任意目录下执行
并不是文件在任意目录下都可以执行
像是你提供的最后一张图上,其实提示的已经很明确了
找不到Hello.java文件
其实javac已经执行了,它找不到要编译的Hello.java文件
打个比方
你用鼠标左键双击当前目录的某个文件可以打开
但是鼠标左键双击可以打开不在当前目录的文件的吗?
一个道理

这个跟环境变量没有半毛钱关系

评分

参与人数 1鱼币 +2 收起 理由
糯米糯 + 2 懂啦!比喻很形象,谢谢!

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2017-2-10 18:19:44 | 显示全部楼层
零度非安全 发表于 2017-2-9 17:26
按照你的意思,Java 源代码文件不管存放在哪里,只要你在 cmd 下都能编译运行,那岂不乱套了,

classp ...

回去试了一下自己电脑发现真的不行……傻逼了,居然把一个概念理解错了这么久……谢谢大神悉心指导!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-2-10 18:50:35 | 显示全部楼层
糯米糯 发表于 2017-2-10 18:19
回去试了一下自己电脑发现真的不行……傻逼了,居然把一个概念理解错了这么久……谢谢大神悉心指导!

提出问题好,解决了就更好,只有这样才能不断提升自己的能力
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2017-2-13 08:04:51 | 显示全部楼层
零度非安全 发表于 2017-2-10 18:50
提出问题好,解决了就更好,只有这样才能不断提升自己的能力

恩恩~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-3-28 18:35

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表