A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 0_TNT_0 中级黑马   /  2014-12-11 00:39  /  1462 人查看  /  15 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

听说 JDK 1.5 之后,不用在设置classpath 。
我自己亲自试了一把  设置了 classpath之后(.;e:\aaa\)  备注 e:\aaa\是我的java文件存放目录。
在C盘根目录下,新建了一个Demo.java  和  D.java的文档。两个java文件里面都是正常写了一个Helloworld程序。
源码是:
class  
{
        public static void main(String[] args)
        {
                System.out.println("Hello World!");
        }
}

将该两个文件拷贝到e:\aaa\  目录下,就能编译正常  运行正常。
在c:\目录下  编译的时候就报错
报错截图见图片。

百思不得解,灵机一动把classpath删除了之后,就能编译运行正常了。。。。。



求大神解释啊

报错截图.jpg (27.83 KB, 下载次数: 17)

报错截图

报错截图

15 个回复

倒序浏览
抢一个沙发,我也试了一下,还挺方便的~
回复 使用道具 举报
清浅。。 发表于 2014-12-11 00:45
抢一个沙发,我也试了一下,还挺方便的~

方便什么?
回复 使用道具 举报

再也不用设置classpath了!现在最新的是1.8。。。
回复 使用道具 举报
孔令程 来自手机 初级黑马 2014-12-11 01:05:34
报纸
楼主,你没有在class后定义类名啊!
回复 使用道具 举报
孔令程 发表于 2014-12-11 01:05
楼主,你没有在class后定义类名啊!

抱歉 忘了说明了  类名 分别 写的 D  和 Demo
回复 使用道具 举报
首先查看一下中英文格式,然后看一下你的classpath是不是系统环境变量。
回复 使用道具 举报
Dark_Knight 来自手机 中级黑马 2014-12-11 09:15:31
8#
路过看看

点评

感谢  发表于 2014-12-11 20:29
回复 使用道具 举报



你的CLASSPATH设置是没有加最后的分号。所以运行环境指向的位置是最后e:\aaa\,
但是在编译时生成的class文件在C盘,所以找不到类。
像我的图所示一样,不过把class文件复制过去就能运行,或者重新设置classpath.

评分

参与人数 1技术分 +1 收起 理由
杨佳名 + 1

查看全部评分

回复 使用道具 举报
本帖最后由 0_TNT_0 于 2014-12-11 20:28 编辑
擒贼先擒王 发表于 2014-12-11 08:57
首先查看一下中英文格式,然后看一下你的classpath是不是系统环境变量。

应该不是 中英文格式问题  
中英文的格式问题    报错类型和图中的不一样  哦哦

非法字符报错.jpg (15.99 KB, 下载次数: 10)

这是非法字符报错,所有中英文的格式问题,都是报这个错误

这是非法字符报错,所有中英文的格式问题,都是报这个错误

环境变量classpath最后无分号设置截图.jpg (162.77 KB, 下载次数: 23)

这是环境变量配置截图,不是你说的不在系统变量里的情况

这是环境变量配置截图,不是你说的不在系统变量里的情况

源码有中文字符.jpg (73.81 KB, 下载次数: 21)

这是有中文字符(中文分号)的源码截图

这是有中文字符(中文分号)的源码截图
回复 使用道具 举报
史云龙 发表于 2014-12-11 10:58
你的CLASSPATH设置是没有加最后的分号。所以运行环境指向的位置是最后e:\aaa\,
但是在编译时生成的clas ...

首先,感谢你的回答。
   但是我今天自己动手验证了一下,在我的电脑(winXP系统,JDK1.7)上,classpath配置如下图(结尾没有分号)的情况下,编译运行正常。能够正常输出。和你的截图不太一样。废话不多说,截图奉上。。。。
   可是我昨天设置的classpath确实没有加分号,就出现了第一次发帖的问题,好奇怪啊,有点蒙圈了,虽然这个知识点不是太影响学习Java的进程,对于强迫症的我还是在心里留下了一个小疑问。。。。。

源码D.java.jpg (79.81 KB, 下载次数: 21)

这是源码截图

这是源码截图

环境变量classpath最后无分号设置截图.jpg (162.77 KB, 下载次数: 11)

这是环境变量classpath结尾没分号的截图

这是环境变量classpath结尾没分号的截图

cmd.jpg (4.77 KB, 下载次数: 20)

这是cmd运行结果截图

这是cmd运行结果截图
回复 使用道具 举报
0_TNT_0 发表于 2014-12-11 20:27
首先,感谢你的回答。
   但是我今天自己动手验证了一下,在我的电脑(winXP系统,JDK1.7)上,classpath ...

不太常用1.7,我用的是1.6,不过还是建议加上分号。
回复 使用道具 举报
不知道说的对不对,但是我觉得是这样的,老毕的视频说到这个内容的,可以看一下。但是我觉得你的配置应该是对的。没有分号,但是你的前面是.;表示先在当前目录下查找,然后再找e:\aaa\,这里后面不打分号,表示,这里都没有找到,就不会再找了,会报错误。
回复 使用道具 举报
史云龙 发表于 2014-12-11 21:43
不太常用1.7,我用的是1.6,不过还是建议加上分号。

感谢,我也感觉加上分号会更好一些
回复 使用道具 举报
ben_vs_cong 发表于 2014-12-11 21:43
不知道说的对不对,但是我觉得是这样的,老毕的视频说到这个内容的,可以看一下。但是我觉得你的配置应该是 ...

感谢。有时间我再去看看毕老师的视频,另外听说JDK 1.5 以后不用配置classpath,不明白啥意思。。。。
我觉得其实无论JDK1.5之前还是之后,配不配classpath没太大作用,只不过是在其他目录下能运行后缀名是.class的文件罢了。
不知道理解的对不对。。。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马