是否需要编译用于其他程序的包?

时间:2017-10-07 19:22:09

标签: java

在Java中,当创建一个供其他程序使用的包时,是否需要编译包?

换句话说,当我们谈论使用包时,

  • 包是必须在字节码和.class或.jar文件?
  • 或者它可以是Java语言还是.java文件?

感谢。

2 个答案:

答案 0 :(得分:0)

需要编译才能被其他程序使用。 Java虚拟机(JVM)在bytecode上运行,这是已编译的setText()文件。

JVM使用已编译的表单可以节省启动时间,并且还可以在Java之外的JVM languages中运行程序,如果它们共享相同的二进制形式(例如:Scala,Groovy,Clojure .. )。 这样一个JVM就可以运行一个程序,该程序最初是用多种语言编写的。例如,程序在Scala中,但这些库最初(在编译之前)用Java编写。

答案 1 :(得分:0)

如果使用'软件包进行编译,当然其他程序可以使用普通的.java文件,如果它们在编译时包含在类路径中(与使用的方式相同)你的文件)。 Java编译器只会编译'包'也可以毫无区别地将其添加到最终结果中。

但是在谈论包或库时,只允许.class个文件(可选地在jar中),Java ClassLoader可以访问和使用这些文件。在加载库时,JVM不会停止编译代码。