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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 任增涛 黑马帝   /  2012-2-4 11:49  /  2557 人查看  /  9 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

各位,有一个特小的问题,一直没好意思问出。
是这样:
class Car
{
      public static void main(String[] args)
     {
     }
}
就当这个是一个完整的程序,我把这个保存在一个文件夹里。名字叫做:Car.java
在dos编译的时候是这样的:javac car.java  也可以是javac Car.java    编译的时候名字是不区分大小写的!
但是在执行的时候必须是这样:java Car   名字一定要区分大小写的!
为什么呢?有点不理解!

评分

参与人数 1技术分 +1 收起 理由
admin + 1 不懂就问是好习惯

查看全部评分

9 个回复

倒序浏览
因为执行的时候是执行的类,类的首字母都是大写的。

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

回复 使用道具 举报
因为编译的时候是编译源文件,也就是 .java文件,在windows系统中文件名的大小写
是不区分的。而运行的时候是运行 .class文件,也就是类,在java中类名必须大写所以
java虚拟机会报错

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

回复 使用道具 举报
java中类名必须大写吗?不一定
这应该只是种规范而已,在这里把类名改成car,然后把保存的文件名也改为car.java一样可以编译运行的。
为什么运行时一定要写Car还不是因为你类名Car而不是car

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

回复 使用道具 举报
java命名类名一般每个单词首字母大写

运行时要运行带有主函数的class类后的那个 名字----它大写运行时就要大写
回复 使用道具 举报
java是区分大小写的,.class文件是类源文件编译产生的,如果类名是car ,产生的就是car.class  如果类名是Car,产生的就是Car.class。
Car.class 和car.class是两个不同的类文件。这两个文件是可以同时存在的。
所以在运行的时候dos命令中必须区分大小写。要不然就不知道运行哪个文件了。

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

回复 使用道具 举报
衣服 黑马帝 2012-2-4 17:53:16
7#
简单的说 编译器只是翻译为class文件 而在windows下不区分大小写,运行是调用java虚拟机的 它是区分大小写的。

楼主可以去linux系统试试第一步就不行
回复 使用道具 举报
本帖最后由 wuchao2877 于 2012-2-5 00:26 编辑

根据你定义的来定,比如你class定义的是Car
javac Car.java生成一个class文件,
根据你定义的名字
然后输入  java Car
class文件区分大小写     类名与文件名一致
而java源文件不区分大小写

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

回复 使用道具 举报
如图      c{:soso_e181:}

QQ截图20120205001722.jpg (4.68 KB, 下载次数: 28)

QQ截图20120205001722.jpg

评分

参与人数 1技术分 +1 收起 理由
admin + 1 新人加分表示鼓励

查看全部评分

回复 使用道具 举报
例:javac 文件名.java (这个归系统管、不区分大小写)
       java 类名 (这个归java管,区分大小写)
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马