在Java中从目录中的不同目录导入
我有一个目录在Java中从目录中的不同目录导入,java,Java,我有一个目录pj,其中包含两个目录,dirA和TestsTests有一个文件Test.java(pj/Tests/Test.java),它从dirA中的file.java(pj/dirA/file.java)导入。如何指定这样的导入?我尝试在Test.java中导入dirA.*,但失败了dirA是一个包 pj和Tests不是软件包(尽管我可以在必要时制作它们) 在File.java中,语句如下: package dirA; import list.*; 在Test.java中,类头前面的语句如
pj
,其中包含两个目录,dirA
和Tests
Tests
有一个文件Test.java
(pj/Tests/Test.java),它从dirA
中的file.java
(pj/dirA/file.java)导入。如何指定这样的导入?我尝试在Test.java中导入dirA.*
,但失败了dirA
是一个包
pj
和Tests
不是软件包(尽管我可以在必要时制作它们)
在File.java中,语句如下:
package dirA;
import list.*;
在Test.java中,类头前面的语句如下
import pj.dirA.File;
当我这样做的时候
javac Test.java
从内部
测试
,它失败了 将其添加到您的File.java中:
package pj.dirA;
在Test.java中:
package pj.Tests;
import pj.dirA.File;
然后从包含pj文件夹的文件夹中执行javac
注意:我已经解释了如何更改当前设置以使其正常工作。与目录相对应的包名称实际上应该都是小写的
在java中,您不能从任何地方导入目录,只能导入包。例如,如果将其与C/C++进行比较,这是不同的。请提及File.java中声明的包路径是什么?如果您提到包pj.dirA.File.java,那么您需要在dirA imports pj.*或pj.dirA.Fileimport pj.dirA.File中声明;java没有人知道如何将文件从另一个目录导入到另一个目录中的文件?所以测试必须是一个包?也就是说,在另一个目录中,要从另一个目录导入到某个目录中的文件,导入到的文件必须位于某个目录中?@GeorgeNewton在java中,任何文件中都不会导入内容。这与C/C++不同。您只能使用import语句声明要使用某个包命名空间。实际上,包名称空间也对应于目录,这可能会让人困惑。是的,应该使用包。也可以在根包中指定没有包名的类,但不建议这样做,并且有几个缺点。