【发布时间】:2016-11-27 23:07:33
【问题描述】:
我正在从一本书中学习 Java,并且正在阅读有关访问控制的章节。练习要求我在包中创建一个类,然后在包外创建该类的实例。
我的所有文件都创建在位于以下位置的文件夹中: 用户/myname/Desktop/java/accessControl,如果重要的话,我在 Mac 上
我用这段代码创建了一个文件 Person.java:
package net.baumli.a;
public class Person {
void welcome() {
System.out.println("A new person has entered the room, welcome.");
}
}
我没有域名,所以我只是使用 net.mylastname 并随机创建了该包名。
然后我创建了文件AcTest.java
import net.baumli.a.Person;
public class AcTest {
public static void main(String[] args) {
Person mike = new Person();
mike.welcome();
}
}
然后我编译 javac ActTest.java 并收到这些错误:
cTest.java:1: error: package net.baumli.a does not exist
import net.baumli.a.Person;
^
AcTest.java:5: error: cannot access Person
Person mike = new Person();
^
bad source file: ./Person.java
file does not contain class Person
Please remove or make sure it appears in the correct subdirectory of the sourcepath.
2 个错误
我需要更改我的 CLASSPATH 变量吗?我知道它说我的课程不在正确的子目录中,但我如何才能把它放在那里?当我创建一个包名称时,是否可以将其设为随机名称,还是必须将其与目录路径匹配?我对整个情况感到非常困惑。您可以提供的任何帮助将不胜感激!
【问题讨论】:
-
这是一个愚蠢的问题,但是文件夹“net”、“baumli”和“a”是否存在? (符合您的包的名称)
-
将 Person.java 和 ActTest.java 放在 Users/myname/Desktop/java/accessControl/net/baumli/a/ - 假设您使用命令行编译,将默认目录设置为 Users/我的名字/桌面/java/accessControl/。然后执行“javac net/baumli/a/AcTest.java”。除非需要在某个地方找到其他类,否则您不需要类路径变量。
标签: java package packages access-control subdirectory