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

两个java文件,在同一个目录中,一个访问其他类?,java,command-line,javac,Java,Command Line,Javac,我正在尝试向另一个.java文件中的类授予一个.java文件访问权限。我想在命令行上执行此操作。例如,我将如何使用下面的两个文件执行此操作 文件:“ToImport.java” 文件:“TheImport.java” 当我键入javac-ToImport.java时,我没有得到错误,但当我键入javac-TheImport.java时,我得到以下错误 从包含.java文件的包中运行: javac *.java 或 编译器需要同时编译这两个类,它不能单独编译一个依赖于另一个类的类。导入取决于类导

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

文件:“ToImport.java”

文件:“TheImport.java”

当我键入
javac-ToImport.java
时,我没有得到错误,但当我键入
javac-TheImport.java
时,我得到以下错误


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

javac *.java


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

导入取决于类
导入。因此,在编译导入时,编译器必须同时编译
以导入
,或者访问已编译的
以导入

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

src
└── ABC
    ├── TheImport.java
    └── ToImport.java 
另外,假设您在目录
src
中,并且希望编译到
。/classes
。必须使用以下命令之一:

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

如果两个
.java
文件相互依赖,则必须像在第一个命令中一样同时编译它们

还要注意的是,包应该都是小写的,以遵守Java命名约定

要运行您可以键入的主程序

cd ../classes
java ABC.TheImport

类放在哪个目录中,如何运行Java以及从何处运行Java,很可能是从这两个文件所在的目录调用
javac
。它们都需要位于名为“ABC”(包名)的目录中,您需要从包含“ABC”的目录中调用
javac ABC\TheImport.java
。不管怎样,这是我的猜测。既然两个文件都在同一个包中并且声明为公共,那么您就不必担心调用,只需创建对象就足够了,但问题是,正如jigar所说,您如何编译它编译器不必同时编译这两个类。它可以编译一个,然后使用
javac
参数
-cp
编译依赖于它的另一个,正如JB Nizet对这个问题的回答。完美答案。您可以在
-cp
本身中编译时添加外部JAR,它们应该
分开。您还必须在使用
java
命令运行类文件时传递JAR。
src
└── ABC
    ├── TheImport.java
    └── ToImport.java 
javac -d ../classes ABC/ToImport.java ABC/TheImport.java
javac -d ../classes ABC/ToImport.java
javac -cp ../classes -d ../classes ABC/TheImport.java
cd ../classes
java ABC.TheImport