【问题标题】:What am I doing wrong with creating a java package and importing it (beginner)? [duplicate]创建java包并导入它(初学者)我做错了什么? [复制]
【发布时间】: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


【解决方案1】:

只需将你的包目录移到你的程序目录之上。

让你的程序目录C:\Java\AcTest.java

然后你可以创建你的包目录,比如 C:\Java\net\baumli\a\Person

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-22
    • 1970-01-01
    相关资源
    最近更新 更多