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

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

是否有可能做到这一点?


UPDATE

谢谢你的回答。

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

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

import aaa.* import bbb.* public class Hello { World world; } 

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

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

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

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

不。但是你可以提供依赖类文件的存根版本,如果它只是少数几个你想要编译的代码直接使用的类。

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

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

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