首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >无法访问包中的类

无法访问包中的类
EN

Stack Overflow用户
提问于 2014-11-11 12:28:57
回答 5查看 52.9K关注 0票数 6

我有以下目录结构:

MessManagement是父目录。

下面有3个目录:studentmessconvenermessmanager

学生目录包含Student.javaStudent.class文件。messconvener包含MessConvener.java,这需要Student class,因为MessConvener 是从Student本身扩展的

我应该如何打包这些类...??

到目前为止我已经尝试过的东西。

代码:

这是Student.java

代码语言:javascript
复制
package MessManagement;
import java.sql.*;

public class Student
{

}

这是MessConvener.java

代码语言:javascript
复制
package MessManagement;
import MessManagement.student.Student;
public class MessConvener extends Student
{

}

但这对work.Error Meesage来说似乎不是:

MessConvener.java:2: error: package MessManagement.student does not exist import MessManagement.student.Student; ^ MessConvener.java:3: error: cannot find symbol public class MessConvener extends Student ^ symbol: class Student 2 errors

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2014-11-11 12:35:04

发生这种情况有两个可能的原因

  1. 是包含在类路径中的目录的根目录吗?您需要在启动java程序时指定。See the documentation on how to do that还是this variant for unix.
  2. Are你的类是公开的?如果您忘记了public修饰符,那么类将具有包的可见性,并且不能从其他包访问。
  3. 哦,没有人会期待西班牙的宗教调查……请仔细检查您的拼写,包括大写。
票数 2
EN

Stack Overflow用户

发布于 2017-09-01 03:09:13

你得到的错误是有意义的。Student类位于MessManagement包而不是MessManagement.student包中。

因此,要么删除您在MessManagement中导入的Student,要么将Student中的包名改为MessManagement.student

对我来说,我得到这个错误是因为不同的原因,这是在一个maven项目中。这是在我对类进行了重大更改并复制了许多新类之后开始发生的。与您的情况不同,没有冲突的包名。

解决方案是做mvn clean

在这之后,我再也没有得到那个错误了。

票数 15
EN

Stack Overflow用户

发布于 2017-11-15 14:08:23

我最近遇到了这个问题,这是因为我在编译的java文件所在的目录中有一个类文件。您需要删除该目录中的所有.class文件。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26857487

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档