我正在尝试在另一个.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
时,我收到以下错误,
答案 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
编译器需要同时编译这两个类,它不能单独编译一个依赖于另一个类的类。