【发布时间】:2014-07-14 00:48:21
【问题描述】:
我有一个 java 程序的源代码,但我没有它的依赖项。是否可以编译使用无法解析的字段、类和方法的 Java 代码?如果没有,是否有程序或 Eclipse 插件会在编译期间自动生成无法解析的假类、变量和方法?请举例说明。
public class Main {
public static void main(String[] args) {
// ...
UnknownClass.unknownMethod();
}
}
我希望它使用 unknownMethod() 方法自动生成 Class UnknownClass:
public class UnknownClass {
public static void unknownMethod() {}
}
但不在输出 .jar 中导出它
【问题讨论】:
-
如果您需要这些类的依赖项,您可以自己下载并将它们放在类路径中,也可以使用 Maven 或 Gradle 等工具为您管理和下载它们。
-
不,它们不是供下载的,是否可以在编译过程中简单地生成一个假的方法和变量来编译调用未知方法的代码?
-
理论上你可以......但这在实践中是行不通的,因为代码显然取决于那里的那些类。如果由于某种原因无法下载这些依赖项,则可能会卡住。
-
@Makoto 你的意思是,当 Java 代码编译时,它使用来自使用的类和方法的信息?那么人们是如何创建 API 的呢?
-
@Makoto 但是人们如何创建 API?例如 Bukkit 和 Craftbukkit (bukkit.org)。 Craftbukkit 是实际的程序,Bukkit 只是 API,只包含方法,没有内部代码。但是,当为 Bukkit 编译插件时,它也可以与 CraftBukkit 一起使用。
标签: java compilation