是否可以在同一源代码包中包含.class和.java类?

时间:2016-03-27 16:22:12

标签: java testing junit

在抛出一些开源程序的源代码时,我意识到有些项目的源代码文件中有.class和.java!我知道.class是一个已经编译好的.java文件,而.class是二进制文件但是可以在项目中编译和编译未编译的文件吗?如果是,那为什么这样做?有什么好处?

长话短说:我正在尝试在不同的项目中学习测试类,在那里我意识到某些程序在(build)文件夹下有测试文件,其中.class作为扩展名!这些类的行为是否与位于具有.java扩展名的测试包下的测试类不同? 无论如何反编译它们?

感谢

2 个答案:

答案 0 :(得分:1)

类文件和Java文件共享由包结构定义的相同子目录结构。

像eclipse这样的IDE允许您将类文件放入与相应源文件相同的文件夹中,或放入另一个(重复的)文件夹结构中。

我认为,您选择的这些选项中的哪一个是品味问题。

答案 1 :(得分:1)

事实上,如果你运行java编译器(javac)而没有指定' -d'用于指示放置生成的类的特定目录的选项,默认情况下,它将它们放在与源文件相同的目录中。

这样做没有冲突,因为javac编译器和jvm启动器(java)没有查看相同的文件扩展名。

但是,通常认为将生成的类文件放在项目下的单独文件夹中是最佳做法:classes,bin等。