两个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