两个java文件,在同一目录中,一个访问其他类/ s?

时间:2013-03-08 21:40:36

标签: java command-line javac

我正在尝试在另一个.java文件中授予对该类的一个.java文件访问权限。我想在命令行上执行此操作。例如,如何使用下面的两个文件执行此操作?

文件:" ToImport.java"

package ABC;
public class ToImport {
    private String aName;
    public ToImport(String Name)  {
        aName = Name;
    }
    public String toString() {
        return("Text: " + aName);
    }
}

文件:" TheImport.java"

package ABC;
public class TheImport {
        public static void main(String[] args) {
        ToImport abc = new ToImport("a");
        System.out.println("TEST: " + abc);
    }
}

当我输入javac ToImport.java时,我没有错误,但是当我输入javac TheImport.java时,我收到以下错误,

Command Prompt Error Message

2 个答案:

答案 0 :(得分:7)

TheImport取决于班级ToImport。因此,当您编译TheImport时,编译器必须也编译ToImport或访问已编译的ToImport类。

假设您有一个如下所示的目录,

src
└── ABC
    ├── TheImport.java
    └── ToImport.java 

此外,我们假设您已进入目录src,并想要编译为../classes。您必须使用以下命令之一:

javac -d ../classes ABC/ToImport.java ABC/TheImport.java

javac -d ../classes ABC/ToImport.java
javac -cp ../classes -d ../classes ABC/TheImport.java

如果两个.java文件彼此依赖,那么您必须像第一个命令一样同时编译它们。

另请注意,包应该全部小写以遵守Java命名约定。

要运行您可以输入的主程序,

cd ../classes
java ABC.TheImport

答案 1 :(得分:3)

从包含.java文件的包运行:

javac *.java

javac TheImport.java ToImport.java

编译器需要同时编译这两个类,它不能单独编译一个依赖于另一个类的类。