11

我正在尝试授予一个.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我收到以下错误,

命令提示错误信息

4

2 回答 2

11

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
于 2013-03-08T22:00:32.600 回答
3

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

javac *.java

或者

javac TheImport.java ToImport.java

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

于 2013-03-08T21:59:37.060 回答