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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 978677855 中级黑马   /  2016-2-25 17:50  /  8555 人查看  /  25 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

5黑马币
使用EditPlus3的时候,java文件名一定要和他的类名一致吗?我刚刚联系的时候,java文件名为hell.java,类名为Hell,结果就出现下图的情况;把类名改成hell之后就正常运行了,请问谁知道这是什么原因?小白一天请多指教,谢谢!
file:///C:\Users\Administrator\AppData\Roaming\Tencent\Users\978677855\QQ\WinTemp\RichOle\B9V7]W7EHD3MNQU0CB{S41S.pngfile:///C:\Users\Administrator\AppData\Roaming\Tencent\Users\978677855\QQ\WinTemp\RichOle\B9V7]W7EHD3MNQU0CB{S41S.png

file:///C:\Users\Administrator\AppData\Roaming\Tencent\Users\978677855\QQ\WinTemp\RichOle\B9V7]W7EHD3MNQU0CB{S41S.png



B9V7]W7EHD3MNQU0CB{S41S.png (127.13 KB, 下载次数: 43)

B9V7]W7EHD3MNQU0CB{S41S.png

25 个回复

正序浏览
用这个来写程序的话是要保持一至的名字——我觉得这也是和eclips一样的原理吧,就是当你写的类名不一样或者同一个包下有相同的类名时,会出现不知道要运行哪一个,所以就报错了,但是如果用的是NOTEPAD++就不一定,而且可以一个新文件下写多个类,在控制台运行时就输入相对应的类的名就行了,
回复 使用道具 举报
编译后的字节码文件是用类名命名的,运行时如果用源代码文件名的话就会报错:找不到该文件.所以最好源代码的文件名和类名要保持一致.
回复 使用道具 举报
我认为应该改文件名,而不是类名
使用EditPlus3的时候,java文件名一定要和他的类名一致,因为这属于默认规则,没必要深究!
回复 使用道具 举报
类名和文件名要一致
回复 使用道具 举报
必须一致,否则会报错。还得区分大小写,字符
回复 使用道具 举报
必须相同,不然会找不到加载的之类。
回复 使用道具 举报
是的,文件名和类名必须一致,不然编译的时候找不到文件或和类名,程序就无法编译!
回复 使用道具 举报
简单说:你去打电话订了外卖,是西红柿炒鸡蛋,而给你送餐的时候你跟人家要宫保鸡丁盖饭,人家能拿得出来吗?
回复 使用道具 举报
本帖最后由 xiaobinghe 于 2016-3-10 23:17 编辑

理论上类名和文件名可以是不一样的,但是在editplus和eclipse中都默认要一致,不然就会报错;
这样做的目的是为了方便用户查找和使用,并不和程序冲突;
谢谢,希望能帮到你!
回复 使用道具 举报
本帖最后由 xiaobinghe 于 2016-3-10 23:19 编辑

理论上Java保存的文件名和类名可以不一致;
回复 使用道具 举报
好像是吧
回复 使用道具 举报
善毅 来自手机 中级黑马 2016-3-9 13:02:08
14#
当.java文件类名与文件名不一致时,确实是不能运行.直接改成完全一样的,就可以运行了.
原因是这样的:
当按下ctrl+1时,等价于执行了javac 文件名.java命令,这时会根据你的类名编译生成.class文件;
当按下ctrl+2时,等价于执行了java 文件名命令(运行文件名.class文件),到这里就出问题了.
回复 使用道具 举报
1.Java保存的文件名必须与类名一致;
2、你应该设置过EditPlus吧,查看一下有没有在设置上出问题
回复 使用道具 举报
1.Java保存的文件名必须与类名一致; 2.如果文件中只有一个类,文件名必须与类名一致; 3.一个Java文件中只能有一个public类; 4.如果文件中不止一个类,文件名必须与public类名一致; 5.如果文件中不止一个类,而且没有public类,文件名可与任一类名一致。
回复 使用道具 举报
wx_abgyXgs1 来自手机 中级黑马 2016-3-8 05:48:00
11#
当编写一个Java源代码文件时,此文件通常被称为编译单元(有时也称为转译单元)。每个编译单元都必须要有一个后缀为.java,而在编译单元内测可以 有一个public类,该类的名称必须与文件名称相同(包括大小写,但不包括文件的后缀名.java)。每个编译单元只能有一个public类,否则编译 器就不会接受。如果在该编译单元之中还有额外的类的话,那么在包之外的世界是无法看见这些类的,这是因为他们不是public类,而且他们主要用来为主要 public类提供支持,
回复 使用道具 举报
新人小白一枚,亲测,一定要一致
回复 使用道具 举报
当.java文件类名与文件名不一致时,确实是不能运行.直接改成完全一样的,就可以运行了.
原因是这样的:
当按下ctrl+1时,等价于执行了javac 文件名.java命令,这时会生成一个类名.class文件;
当按下ctrl+2时,等价于执行了java 文件名命令(运行文件名.class文件),到这里就出问题了.
因为我们是在运行一个并不存在的.class文件,这是不可以的.
回复 使用道具 举报
zxycs 中级黑马 2016-2-26 21:07:49
8#
978677855 发表于 2016-2-26 10:46
嗯嗯,明白了!谢谢指教

说好的分呢?亲
回复 使用道具 举报
就是我 发表于 2016-2-26 11:08
明白了,说好的分呢?

不好意思,第一次发帖,不太会玩
回复 使用道具 举报
就是我 发表于 2016-2-26 11:08
明白了,说好的分呢?

不好意思,第一次发帖,不太会玩
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马