我正在使用反射在运行时加载MyClass.class
(外部文件)。
MyClass.class
使用库Bar
,这意味着我需要将import foo.Bar;
放在文件的顶部。
但是,Bar
库已加载到主类加载MyClass
中。
有没有办法让我告诉javac忽略Bar
不存在而只是在没有它的情况下编译?
答案 0 :(得分:6)
不,这是不可能的。编译类时,编译器没有"内存"其中的课程已经加载了#34; (不要将此与有关类加载的概念混淆 - 这是一个完全不同的故事)。每当编译一个类并且找到一个不在同一个包中的类的引用时,就需要import
语句。
这就是说,你的问题似乎有一个矛盾:从你所说的,MyClass
已经编译,因为文件MyClass.class
存在,所以这里没有涉及编译器。它是进行加载的类加载器。在这种情况下,就类加载器而言,如果主类中已经引用了Bar
,那么它将不会再从MyClass
内加载。
答案 1 :(得分:1)
不,javac命令中没有这样的选项。