2013-12-17 49 views
1

這是一個非常小的問題,但堆棧似乎沒有很多很好的答案。 (請參閱下面的樹結構)包不存在 - Java

in start.java我在做:import web.*,但它找不到包web。在網絡中的所有類或者是package web.exceptions;package web;甚至package web.interfaces;

而且我認爲對導入包你做:import path.to.package.name.*;其中星級進口該包的所有類,或者你可以做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.javaweb/,改變了import web.*;import server.*;現在不知道在哪裏服務器,或者它是什麼......

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

崇高。這就是它。 – TheWebs

+1

導入路徑*不會從path.to包導入類。路徑。*只會導入路徑中的類。 –

+0

web是一個文件夾,其中包含名稱爲interfaces和expertions的文件夾 – TheWebs

回答

1

「或者你可以做進口路徑。 *; 這將導入所有的包和子包和自己的班級」

這是完全錯誤的。如果說

import java.util.*; 

我們指的是進口自java/util/路徑中的所有類。如果你在說什麼爲真,那麼我們就可以說

import java.*; 

即使

import *.*; 

它將在JDK下導入所有類。 不,不是


OP的編輯後

Start.javasrc/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