编译部分Java代码

时间:2017-07-09 19:57:32

标签: java compilation

我正在尝试单独编译Java,特别是编译一个没有所依赖的所有类/接口的类。

例如,假设我有以下文件Foo.java:

public class Foo extends Bar{
  //class body
}

但是没有Bar的java / class文件。我正在寻找允许我单独编译Foo.java的工具,并在稍后阶段添加它的依赖项。

关于如何做的任何事情都有助于从有关该主题的论文以及如何/不能对现有的工作工具/框架做出这样做。

2 个答案:

答案 0 :(得分:0)

无法完成,因为永远不应该有未经验证的字节码。

然而,人们可以通过一些语法工具进行语法验证。

可以绕过实际的实现类来编译接口。

在java 9中,出现了交互式shell JShell REPL,它允许隔离创建声明和语句;部分代码。

令人怀疑的是,其中一个是你正在寻找的。 也许切换到JavaScript的下层区域。

答案 1 :(得分:-1)

通常在java中如果使用反射api进行编码,那么只有ur代码可以独立构建,因为所有分辨率都是在运行时完成的。 Class.forName并不要求在编译期间出现类。但这意味着你将不得不以一种非常复杂的方式重写类的简单代码,这在尝试定义一个简单的POJO类时有时会产生开销。在这个例子中的情况。解释整个场景或要求这样做,因为这可能有助于其他人建议别的东西,因为有时候看大图有帮助