为什么编译一个java文件会生成多个class文件?

为什么编译一个java源文件的时候生成多个class文件,如RPSalePayDao$1.class,RPSalePayDao$2.class,RPSalePayDao$3.class,......RPSalePayDao.class,当RPSalePayDao.java文件改变的时候,需要更新到服务器,那么这几个class文件都需要放到服务器吗,为什么?

这个是因为RPSalePayDao.java里面有多个class,每个class在编译的时候就会生成一个以class的名称命名的.class文件。
要更新这几个文件的时候都要放到服务器,因为你要编译,而且要上传到服务器。追问

RPSalePayDao.java里面有只有一个class

追答

那么那几个多出来的class是其他java源程序编译出来的吗?有时候只要更新服务器的某个.class文件就Ok了。

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-09-13
RPSalePayDao$1
里面有内部类才会这样生成

你应该有类似添加了ActionListener这样的内部实现方法。

当RPSalePayDao.java文件改变的时候,需要更新到服务器,那么这几个class文件都需要放到服务器吗,为什么
如果这样,几个内部类$1,$2必须也要放上去,否则会找不到class追问

这是RPSalePayDao.java里面的一个方法,里面是不是有匿名类啊?我也不太清楚什么样的是匿名类?

追答

就是你那段代码会生成一个$x.class文件的,这个是必需的。

只要你有这种形式的,就会生成一个$x.class得

追问

应该是这样的,谢了!

本回答被提问者采纳
第2个回答  2018-08-04
每一个类对应一个class文件
编译一个java文件会生成多个class文件
说明在此Java文件中调用了多个类本回答被网友采纳
第3个回答  推荐于2017-09-05
每一个类对应一个class文件
编译一个java文件会生成多个class文件
说明在此Java文件中调用了多个类
第4个回答  2011-11-28
RPSalePayDao$1.class,RPSalePayDao$2.class,RPSalePayDao$3.class ..都是RPSalePayDao.class的内部类,最好都更新一下吧,以防万一

为什么编译一个java文件会生成多个class文件?
这个是因为RPSalePayDao.java里面有多个class,每个class在编译的时候就会生成一个以class的名称命名的.class文件。要更新这几个文件的时候都要放到服务器,因为你要编译,而且要上传到服务器。

为什么编译一个java文件会生成多个class文件?
这个是因为RPSalePayDao.java里面有多个class,每个class在编译的时候就会生成一个以class的名称命名的.class文件。要更新这几个文件的时候都要放到服务器,因为你要编译,而且要上传到服务器。 已赞过 已踩过< 你对这个回答的评价是? 评论 收起 其他类似问题2016-10-24 如何将一个class文件编译成java文件 2017-...

Java编译成多个CLASS何解?
这是因为你的程序里面有匿名类,匿名类编译后就会以主类$编号命名。或者有以1、2、3命名的内部类(可能性很小)。所以才会生成这样的文件。至于你说的不能运行你可能是使用了package打包了,在命令行中默认是不能生成包的,需要你指定才可以,所以生成的也就不能运行 匿名类的例子 new WindowAdapter(...

javac编译后为什么会产生多个class
Java程序在编译时会根据“一个类生成一个.class文件”的原则,来产生字节码文件。虽然你可以在一个源文件中写上多个类(包括内部类、匿名类、甚至接口、枚举类型等等),但最终产生.class文件时,编译程序会逐一把它们分开存放在各自的文件中的。

一个java源文件编译后是否只生成一个class文件
否。一个JAVA源文件里面可以有内部类,其他类(有且仅有一个类可以声明为public),所以,编译后,可以有多个class文件

一个java类编译出了两个.class
同一个文件夹下 相同名字的文件是不可能存在的,除非扩展名不一样。。。还有种方法,导出所有想保留的项目,然后重新安装一遍

java类中为什么可以有多个class啊
Java一个类里面允许有多个内部类,这是为了提高聚合性。在一个很大的项目中,由于多个开发人员,创建的类很多,导致后期管理或者使用上带来很大的麻烦,为了提供程序的可维护性,有些私有的类就建议写在一个类里面,提高代码可读性。

java文件编译后额外生成的$1.class是怎么一回事
因为你的类文件里面有内部类 比如说你的类文件叫做 test.class 然后这个文件里是 public class test{ test(){ } public class 1{} } 因为每个类必须对应一个文件而Class 1是内部类,所以就会出现test$1.class这个文件

源文件在什么情况下要声明两个或两个以上的类
内部类是一种情况,其它的情况基本上就是技巧了,java是支持一个java文件中写入多个类的情况,但编译后每个类都对应生成自己的class文件,比如一个java文件中有3个类,那么编译后生成3个class文件而不是1个,另外,请注意,多个类写入一个文件的时候,至多只能有一个是public,而且这个声明为public的类...

java命令怎么运行一个包里的多个class文件
首先编译源程序(jdk配置好)找到你文件的位置,javac 文件名.java 然后 java 文件名就可以了

相似回答