java - 即使它们在Java中的同一目录中也找不到符号错误
问题描述
我在同一目录中有两个文件,Main.java
即Functions.java
的内容Main.java
是这样的:
import java.util.Scanner;
class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
String s = scan.next();
Functions you = new Functions(s);
System.out.println("Your name is " + you);
}
}
并且Functions.java
:
public class Functions {
public String name;
public Functions(String name) {
this.name = name;
}
public String toString() {
return name;
}
}
我在终端上手动编译并运行它们。所以这就是我所做的:
javac folder1/folder2/*.java
之后
java folder1/folder2/Main.java
但这给了我一个错误:
error: cannot find symbol
Functions you = new Functions(s);
symbol: class Functions
即使它们在同一个目录中,它仍然会报错。
编辑:我交换了编译和运行的代码。对此感到抱歉。
解决方案
问题是类路径。
folder1
| folder2
| | Main.java
| | Functions.java
运行后,javac folder1/folder2/*.java
您将拥有类文件。
folder1
| folder2
| | Main.class
| | Main.java
| | Functions.class
| | Functions.java
由于您的类不在包中,因此 folder2 需要位于类路径中。运行主要。
java -cp folder1/folder2 Main
请注意,我省略了.java
类的名称。
如果您不想提供 -cp 参数(设置类路径),cd folder1/folder2
那么您将位于包含类文件的文件夹中。您只需键入即可。
java Main
我用你的java文件试过这个。当它工作时,在您按 Enter 之前,您不会看到任何输出。
推荐阅读
- r - 如何解释 POSIXct 字段上的 as.character() 的不同行为:`select(foodate)` 与 `$foodate`?
- c - 如何将字符串的一部分分配给C语言中的变量
- excel - 如何更改 Power BI 导出到 Excel 格式问题?
- ios - iOS - 有资格进行应用内处理的 Intent 不起作用
- javascript - 小胡子结果未更新
- mongodb - 更新MongoDB文档中的多个字段-部分更新-
- javascript - 滚动到特定 div 类时更改 div 颜色
- excel - Excel VBA 标签数据
- docker - 如何为多个/不同的项目重用 Spring Cloud Gateway Docker 映像?
- node.js - 删除`/usr/local/bin`是否安全?