在Java中编译具有依赖项的类
鉴于以下类别:在Java中编译具有依赖项的类,java,compilation,dependencies,javac,Java,Compilation,Dependencies,Javac,鉴于以下类别: package a.b; public class C { public B b; } 并且,在另一个文件中: public class B {} 站在文件夹中,正在执行 javac B.java javac a/b/C.java -cp . 将在文件夹内生成B.class,并将返回第二个命令中未找到的符号 如何在不修改任何类B和C的情况下编译C.java 编辑:可能这无法完成如果在同一个java文件中创建两个类,那么只有一个类必须声明为公共类。并且文件名应指定为
package a.b;
public class C {
public B b;
}
并且,在另一个文件中:
public class B {}
站在文件夹中,正在执行
javac B.java
javac a/b/C.java -cp .
将在文件夹内生成B.class,并将返回第二个命令中未找到的符号
如何在不修改任何类B和C的情况下编译C.java
编辑:可能这无法完成如果在同一个java文件中创建两个类,那么只有一个类必须声明为公共类。并且文件名应指定为 公共类名.java 另外,您创建类B实例的方法不正确。必须按照以下步骤进行: B=新的B 确保编译为: javac-d。C.java
并确保从类B中删除公共访问修饰符。为什么要单独编译它们
javac B.java a/b/C.java
我相信这会很好,因为javac将能够看到您的两个文件
您甚至不需要-cp选项,因为您已经在告诉javac您需要的一切;是正确的类字段两个类都在不同的文件中如果它们在不同的文件中,那么将第3行修改为:B=新B;并使用包a.b.java的javac-d目录进行编译。这将使它起作用,并确保您已经编写了主方法问题是,在不对任何文件进行任何修改的情况下,您的Symbol not found错误被发出,因为javac无法解析C.java中的变量声明,对吗?我测试了一下,它不起作用。即使成功了,也不能解决我的问题。也许这是不可能的,怎么办?javac是否无法定位一个或两个文件,或者在编译文件时发出错误?同样的错误也会发生,Symbol not found指的是类CI中字段B的类型B,我完全不知道为什么这样做不起作用。也许你可以尝试一个实际的依赖管理程序,比如或者?不行,我需要用javac编译这两个类