Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从终端编译从另一个目录扩展父目录的Java文件_Java_Compilation_Terminal_Extends - Fatal编程技术网

从终端编译从另一个目录扩展父目录的Java文件

从终端编译从另一个目录扩展父目录的Java文件,java,compilation,terminal,extends,Java,Compilation,Terminal,Extends,我试着从终端编译一个扩展父类的java类,我注意到当子类和父类都在同一个目录中时,一切正常。但是,当父目录和子目录位于两个不同的目录中时,该怎么办? 父类的已编译文件位于以下目录中: project/bin/com/app/Parent.class 并且java子项位于目录中(请注意,java文件不在src文件夹中): 如何从终端“Child.java”编译到以下目录 project/compiledClasses 谢谢。您是否尝试过将父项扩展/实现为子项?您可以通过创建接口轻松地做到这一点

我试着从终端编译一个扩展父类的java类,我注意到当子类和父类都在同一个目录中时,一切正常。但是,当父目录和子目录位于两个不同的目录中时,该怎么办? 父类的已编译文件位于以下目录中:

project/bin/com/app/Parent.class
并且java子项位于目录中(请注意,java文件不在src文件夹中):

如何从终端“Child.java”编译到以下目录

project/compiledClasses

谢谢。

您是否尝试过将父项扩展/实现为子项?您可以通过创建接口轻松地做到这一点

资料来源:

你现在的选择是1)遵循第二个图表。使类实现一个接口。您可以通过将子类转换为接口来实现这一点。更简单的方法是2)将子类扩展到父类

通过这种方式,您可以使用子类中的所有方法、变量等,除非您必须将所有硬代码移到父类中,只需实现这些方法和变量

对于第一种方法,您可以执行以下操作将其转换为接口:

public interface thisUsedToBeAClass{
iMustUseThisMethodInParentClass();
iMustUseThisVariableInParentClass();
}
否则,如果不想将所有代码从接口移动到另一个类中,只需通过扩展两个类来使用第一个方法

祝你好运

{Rich}

您应该尝试使用-cp或-d选项。您需要同时指定父类路径和“Child.java”路径

我的父类现在是一个抽象类。根据您的图表,我应该将父类转换为接口,对吗?但是你说要把子类变成一个接口,我有点困惑。所有这些将如何帮助从终端编译?是的,但不应该是相反的?父接口是一个接口,所有子接口都应该实现父接口。扩展这两个类是什么意思?因为我已经有了扩展父抽象类的child。那样的话,我已经这么做了。哦,是的,你是对的……我错了。是的,子对象实现父对象。但是,总的来说,正如我所说的,接口可能很难实现。因此,我推荐只扩展这两个类的方法。这样您就不必到处移动代码。现在,在终端中,只运行父类。就像我前面说的:扩展这两个类意味着什么?因为我已经做了扩展父抽象类的child。公共类child扩展父{CODE}
{Rich}