【问题标题】:Package does not exists - Java包不存在 - Java
【发布时间】:2013-12-17 18:55:41
【问题描述】:

这是一个非常琐碎的问题,但 stack 上似乎并没有太多好的答案。 (树结构见下文)

start.java 我正在做:import web.*,但它无法找到包 web。 Web 中的所有类都是package web.exceptions;package web; 甚至package web.interfaces;

我认为对于导入包,您可以:import path.to.package.name.*;,其中 star 导入该包的所有类,或者您可以执行 import path.*;,这将导入所有包和子包及其类。

我错过了什么?

确切的错误是:

start.java:1: error: package web does not exist

有问题的班级是:

package src; // right package?

import web.*;

public class Start{

    public static void main(String[] args){
        if(args[0].startsWith("--port")){
          String[] argument = args[0].split("=");
          WebServer webServer = new WebServer(argument[1]);
        }
    }
}

树路径

我将Start.java 移动到web/ 并将import web.*; 更改为import server.*; 现在它不知道服务器在哪里,或者它是什么......

.
└── src
    ├── MainClass.txt
    └── web
        ├── Start.java
        └── server
            ├── WebServer.java
            ├── exceptions
            │   └── WebServerException.java
            └── interfaces
                └── WebServerInterface.java

【问题讨论】:

  • 崇高。就是这样。
  • import path.* 不会从 path.to 包中导入类。 path.* 只会导入路径内的类。
  • web 是一个文件夹,其文件夹名称为interfaces 和expcetions
  • 进入ApplicationName文件夹,在cmd中输入tree,复制粘贴文件夹结构。
  • 我在一个无法工作的 mac obvi 上......什么是正确的命令

标签: java


【解决方案1】:

“或者你可以导入路径。*; 这将导入所有包和子包及其类”

这是完全错误的。如果我们说

import java.util.*;

我们的意思是从java/util/ 路径导入所有类。如果你说的是真的,那我们只能说

import java.*;

甚至

import *.*;

它会导入JDK下的所有类。 不,不是


在 OP 的 EDIT 之后

Start.java 位于src/web/ 文件夹下。所以Start.java的包声明应该是

package web;

现在如果你想使用WebServer.java 使用

import web.server.WebServer;

现在如果你想使用WebServerException.java 使用

import web.server.exceptions.WebServerException;

现在如果你想使用WebServerInterface.java 使用

import web.server.interfaces.WebServerInterface;

请在编写任何代码之前阅读基础教程。

了解Packages

【讨论】:

    猜你喜欢
    • 2011-11-13
    • 2019-01-11
    • 2022-01-03
    • 2017-08-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-04
    相关资源
    最近更新 更多