找不到符号:当 类 放在包中时,javac 不再编译我的驱动程序文件
Cannot find symbol: javac no longer compiles my driver file when classes are placed in a package
这里是菜鸟。
我有一组 class 个文件,它们被驱动程序文件使用。我最初编写的文件没有任何包语句,并使用以下命令编译文件:
javac -d classes src/Driver.java
驱动程序编译顺利(尽管我必须先在 .bash_profile CLASSPATH 变量中添加 src 目录的路径)
接下来,我在所有 src 文件的顶部添加了一个 package 语句。该语句的形式为:
package edu.school.course.project;
每个 src 文件都有相同的包语句。但是,javac 命令现在在执行时会产生 62 "cannot find symbol" 错误。在我的 src 目录中对另一个 class 文件的每个 Driver.java 引用都会失败。
我尝试将此导入语句添加到每个 class 文件中,该文件扩展或实现了包中的某些父 class:
import edu.school.course.project.*;
仍然,javac 产生 62 "cannot find symbol" 个错误。
我是否需要修改我的 CLASSPATH 变量以包含该包?我做错了什么?
从您的文件系统中删除旧的二进制 class 文件(classes
中的文件)。接下来,re-run上面的编译。如果所有内容都在同一个包中,则不需要 import
语句。修改您的 CLASSPATH
以包含 classes
目录(而不是您的 src
目录)。最后,运行 将 driver 设为 java edu.school.course.project.Driver
。
另一种方法是创建一个目录来保存您的驱动程序 class。例如:
mkdir -p src/edu/school/course/project
mv src/Driver.java src/edu/school/course/project
然后编译:
javac -d classes src/edu/school/course/project/Driver.java
您可以将所有其他相关 Java 文件放在同一目录中。
假设 Driver 有一个 main() 方法,运行 它:
java -cp classes/ edu.school.course.project.Driver
这里是菜鸟。
我有一组 class 个文件,它们被驱动程序文件使用。我最初编写的文件没有任何包语句,并使用以下命令编译文件:
javac -d classes src/Driver.java
驱动程序编译顺利(尽管我必须先在 .bash_profile CLASSPATH 变量中添加 src 目录的路径)
接下来,我在所有 src 文件的顶部添加了一个 package 语句。该语句的形式为:
package edu.school.course.project;
每个 src 文件都有相同的包语句。但是,javac 命令现在在执行时会产生 62 "cannot find symbol" 错误。在我的 src 目录中对另一个 class 文件的每个 Driver.java 引用都会失败。
我尝试将此导入语句添加到每个 class 文件中,该文件扩展或实现了包中的某些父 class:
import edu.school.course.project.*;
仍然,javac 产生 62 "cannot find symbol" 个错误。
我是否需要修改我的 CLASSPATH 变量以包含该包?我做错了什么?
从您的文件系统中删除旧的二进制 class 文件(classes
中的文件)。接下来,re-run上面的编译。如果所有内容都在同一个包中,则不需要 import
语句。修改您的 CLASSPATH
以包含 classes
目录(而不是您的 src
目录)。最后,运行 将 driver 设为 java edu.school.course.project.Driver
。
另一种方法是创建一个目录来保存您的驱动程序 class。例如:
mkdir -p src/edu/school/course/project
mv src/Driver.java src/edu/school/course/project
然后编译:
javac -d classes src/edu/school/course/project/Driver.java
您可以将所有其他相关 Java 文件放在同一目录中。
假设 Driver 有一个 main() 方法,运行 它:
java -cp classes/ edu.school.course.project.Driver