【发布时间】:2011-09-20 03:02:48
【问题描述】:
有一个java文件,里面有一些依赖jar。但是现在,我没有那些 jars,我必须将它编译成一个 .class 文件。
可以这样做吗?
更新
感谢您的回答。
起初,我认为我们可以为缺少的依赖项创建一些存根,这很容易但很无聊。既然我们可以在不丢失存根的情况下创建存根来让编译器满意,为什么我们不能让一个工具自动完成呢?该工具不需要创建存根,而是读取 java 文件,收集信息,然后构建 .class 文件。
但是如果java文件中的“import”语句中包含“*”,那就有问题了:
import aaa.*
import bbb.*
public class Hello {
World world;
}
我们不知道“World”类是在包“aaa”还是“bbb”下。如果我们不熟悉缺少的依赖项,我们甚至不知道如何为“World”类创建存根。
但是如果“导入”语句是明确的,我认为是可能的,但也许没有人会写这样的工具
【问题讨论】:
-
我的猜测是:完成后,您将如何处理类文件?如果无法运行代码进行测试,如何确定代码是正确的?
-
如果您进行 Android 开发,Android 工具会附带 Android SDK 所需的所有类的存根版本。在
android.jar中的类文件上运行javap,看看我的意思。有没有可能有人的工作就是整天坐在那里写存根?是的。有可能吗?不,所以你可以尝试浏览 Android 代码库,看看他们做了什么。如果我要自己编写这样的工具,我可能会从 Codemodel 开始(来自stackoverflow.com/questions/121324/…)
标签: java compilation