javac编译生成的.class文件与.java文件名字不相同,这是为什么?,

javac编译生成的.class文件与.java文件名字不相同,这是为什么?,比如我javacDemo.java它自动生成一个Person.class而不是Demo.cl... javac编译生成的.class文件与.java文件名字不相同,这是为什么?,
比如我 javac Demo.java 它自动生成一个 Person.class 而不是 Demo.class 文件,
怎么解决? 求助
展开
 我来答
JINLegend
2013-06-23 · TA获得超过802个赞
知道小有建树答主
回答量:241
采纳率:100%
帮助的人:127万
展开全部
那是因为你的那个class名是Person而非Demo类。.class文件名永远与类名严格相同。
并且你的那个class不是public类型的,于是允许.java的文件名与类名不一致。如果是public类,则类名与文件名必须严格保持一摸一样。

补:
就是啊,只要类名是Person,那么编译出来永远生成Person.class,不管你的文件名是什么。并且,如果你的类是public类,只要文件名不是Person.java,则编译不通过。
百度网友a3becb3
2013-06-23 · 超过40用户采纳过TA的回答
知道小有建树答主
回答量:101
采纳率:0%
帮助的人:91.1万
展开全部
楼上说的有道理,一般来说public 的class 必须和文件名相同;
但是不是public的 比如你不写public 默认default 的 则会编译出你文件内写的class 。

首先你在class person 前增加 public 编译 不会通过。这说明public 的class必须和文件名相同。
你那种写法 不是public 而是default。
2要想编译出Demo.class 修改你的person 为demo
更多追问追答
追问

class Demo 

{

 public static void main(String[] args) 

 {

  System.out.println("Hello World!");

 }

}

 

/*编译 javac Demo.java    自动生成 Person.class 

  我是这个意思    根本就没有存在啥访问权限问题啊,老兄。

 */

 

 

再解决不了我重装下试试额, - -#

追答
不写 public 则是 default  就算不写也有个。还有你上面那种情况 应该出现 Demo .class  你把Person.class 先删除 再 编译
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式