2014-04-02 86 views
0

我有一个目录pj,它拥有两个目录,dirATests内。 Tests有一个文件,Test.java(PJ /测试/ Test.java),即从File.java(PJ/DIRA/File.java)在dirA进口。我如何指定这样的导入?我在Test.java里面试过import dirA.*但是失败了。 dirA是一个包。从不同的目录中导入Java中的目录

pjTests不是包(虽然我可以让他们成为如有必要)。

在File.java,声明如下:

package dirA; 
import list.*; 

在Test.java,是类的头前的语句如下

import pj.dirA.File; 

当我做

javac Test.java 

从内Tests,它失败。在你的Test.java

package pj.dirA; 

这:

+0

请提一下File.java中声明的包路径是什么?如果你提到包pj.dirA.File.java,那么你需要在dirA中声明import pj。*或pj.dirA.File – Murthy

+1

import pj.dirA.File;在Test.java里面 – Karthigeyan

+0

那仍​​然失败。 –

回答

2

在File.java添加此

package pj.Tests; 

import pj.dirA.File; 

然后做的javac从包含您的PJ文件夹中的文件夹。

注:我已经解释了如何改变当前的设置工作。与目录对应的软件包名称应该全部为小写。

在Java中,没有从任何地方进口的目录,你只能导入包。例如,如果您将其与C/C++进行比较,则不同。

+0

所以测试必须是一个包?也就是说,在另一个从另一个目录导入到目录中的文件的另一个文件中,导入到的文件必须位于目录内? –

+1

@GeorgeNewton在java中,东西不会被导入*内*任何文件。这与C/C++不同。您只能使用导入语句来声明您想要使用某些软件包名称空间。实际上,包命名空间也对应于目录,这可能会令人困惑。 – eis

+0

是的,应该使用软件包。它也可以*指定没有包名称的根包中的类,但不建议这样做,它有几个缺点。 – eis