是否可以在不提供依赖性的情况下编译java文件?

时间:2011-06-22 06:44:53

标签: java compilation

有一个java文件,它有一些依赖项jar。但是现在,我没有那些罐子,我必须把它编译成.class文件。

是否可以这样做?


更新

感谢您的回答。

起初,我认为我们可以为缺少的依赖项创建一些存根,这很简单但很无聊。由于我们可以创建存根而不会丢失存根以使编译器满意,为什么我们不能自动创建工具呢?该工具不需要创建存根,但是读取java文件,收集信息,然后构建.class文件。

但是如果java文件中的“import”语句包含“*”,那将是一个问题:

import aaa.*
import bbb.*

public class Hello {
   World world;
}

我们不知道“世界”这个类是否在“aaa”或“bbb”包下。如果我们不熟悉缺少的依赖项,我们甚至不知道如何为“World”类创建存根。

但如果“导入”声明清楚,我认为这是可能的,但也许没有人会写这样的工具

4 个答案:

答案 0 :(得分:11)

你可能会发疯并手工制作所需的依赖项作为存根,除了让编译器满意之外什么都不做。

答案 1 :(得分:5)

没有。抱歉。您需要在类路径中编译所有依赖项。

答案 2 :(得分:3)

没有。但是,您可以提供依赖类文件的存根版本,如果它只是少数几个您尝试编译的代码直接使用的类。

然后从理论上讲,如果您使用.class文件编译并将真实的依赖项放在类路径上,那么您的应用程序将使用正确的(非存根的)依赖类来工作。

答案 3 :(得分:1)

在编译任何文件之前,它总是查找任何依赖项。 但是你说你没有那些罐子!

看看你是否可以删除该项目/文件的依赖关系,然后尝试编译它。试一试!