Java .class文件与jar中的.java文件

你应该在.jar库中使用.class文件或.java文件吗?

我想拿一个我在.java文件中编写的类并将其添加到jar中,这样我就可以在tomcat的WEB-INF / lib目录中将它用作库。

我知道jar可以包含.class文件,.java文件或两者(或其他任何东西)。 我想知道在运行时特别需要什么才能让我的jar可以被JVM读取。 这个问题的答案告诉我.class文件可以工作,但.java文件也可以工作吗?

我已经找到了很多关于如何创建jar的描述,以及关于.java文件和.class文件之间差异的大量信息。 我想,我缺少的是了解JVM如何解释jar库。 它们是在运行时编译的吗?

谢谢

Jar文件是已编译的 java类的集合。 你需要一个jar中的.class文件。 这个。 java文件是你的文件。

不需要。您需要JVM的字节代码(或类文件)来加载类(尽管您可以包含.java文件,但Java Runtime不会执行它们)。 jar文件是一个zip文件(带有一点点元数据)。

此外,您可以将类添加到WEB-INF/classes文件夹中(此外,正如您所提到的那样,代替到WEB-INF/lib for jar)。