&引用;应为类、接口或枚举。”;编译java文件时出错

&引用;应为类、接口或枚举。”;编译java文件时出错,java,Java,首先,问题代码: package net.foo.server; import at; import ay; import bi; import bj; import bl; import ck; import cw; import da; import dp; import ds; import dt; import dw; import ep; import fa; import fd; import fi; import fl; import ge; import ho; import

首先,问题代码:

package net.foo.server;

import at;
import ay;
import bi;
import bj;
import bl;
import ck;
import cw;
import da;
import dp;
import ds;
import dt;
import dw;
import ep;
import fa;
import fd;
import fi;
import fl;
import ge;
import ho;
import ht;
import java.awt.GraphicsEnvironment;
import java.io.File;
import java.io.IOException;
import java.io.PrintStream;
import java.net.InetAddress;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Set;
import java.util.logging.Level;
import java.util.logging.Logger;
net\foo\server\fooServer.java:8: '.' expected
import at;
         ^
net\foo\server\fooServer.java:8: ';' expected
import at;
          ^
net\foo\server\fooServer.java:9: class, interface, or enum expected
import ay;
       ^
net\foo\server\fooServer.java:10: '.' expected
import bi;
         ^
net\foo\server\fooServer.java:10: ';' expected
import bi;
          ^
net\foo\server\fooServer.java:11: class, interface, or enum expected

import bj;
       ^
net\foo\server\fooServer.java:12: '.' expected
import bl;
         ^
net\foo\server\fooServer.java:12: ';' expected
import bl;
          ^
net\foo\server\fooServer.java:13: class, interface, or enum expected

import ck;
       ^
net\foo\server\fooServer.java:14: '.' expected
import cw;
         ^
net\foo\server\fooServer.java:14: ';' expected
import cw;
          ^
net\foo\server\fooServer.java:15: class, interface, or enum expected

import da;
       ^
net\foo\server\fooServer.java:16: '.' expected
import dp;
         ^
net\foo\server\fooServer.java:16: ';' expected
import dp;
          ^
net\foo\server\fooServer.java:17: class, interface, or enum expected

import ds;
       ^
net\foo\server\fooServer.java:18: '.' expected
import dt;
         ^
net\foo\server\fooServer.java:18: ';' expected
import dt;
          ^
net\foo\server\fooServer.java:19: class, interface, or enum expected

import dw;
       ^
net\foo\server\fooServer.java:20: '.' expected
import ep;
         ^
net\foo\server\fooServer.java:20: ';' expected
import ep;
          ^
net\foo\server\fooServer.java:21: class, interface, or enum expected

import fa;
       ^
net\foo\server\fooServer.java:22: '.' expected
import fd;
         ^
net\foo\server\fooServer.java:22: ';' expected
import fd;
          ^
net\foo\server\fooServer.java:23: class, interface, or enum expected

import fi;
       ^
net\foo\server\fooServer.java:24: '.' expected
import fl;
         ^
net\foo\server\fooServer.java:24: ';' expected
import fl;
          ^
net\foo\server\fooServer.java:25: class, interface, or enum expected

import ge;
       ^
net\foo\server\fooServer.java:26: '.' expected
import ho;
         ^
net\foo\server\fooServer.java:26: ';' expected
import ho;
          ^
net\foo\server\fooServer.java:27: class, interface, or enum expected

import ht;
       ^
30 errors
接下来,错误:

package net.foo.server;

import at;
import ay;
import bi;
import bj;
import bl;
import ck;
import cw;
import da;
import dp;
import ds;
import dt;
import dw;
import ep;
import fa;
import fd;
import fi;
import fl;
import ge;
import ho;
import ht;
import java.awt.GraphicsEnvironment;
import java.io.File;
import java.io.IOException;
import java.io.PrintStream;
import java.net.InetAddress;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Set;
import java.util.logging.Level;
import java.util.logging.Logger;
net\foo\server\fooServer.java:8: '.' expected
import at;
         ^
net\foo\server\fooServer.java:8: ';' expected
import at;
          ^
net\foo\server\fooServer.java:9: class, interface, or enum expected
import ay;
       ^
net\foo\server\fooServer.java:10: '.' expected
import bi;
         ^
net\foo\server\fooServer.java:10: ';' expected
import bi;
          ^
net\foo\server\fooServer.java:11: class, interface, or enum expected

import bj;
       ^
net\foo\server\fooServer.java:12: '.' expected
import bl;
         ^
net\foo\server\fooServer.java:12: ';' expected
import bl;
          ^
net\foo\server\fooServer.java:13: class, interface, or enum expected

import ck;
       ^
net\foo\server\fooServer.java:14: '.' expected
import cw;
         ^
net\foo\server\fooServer.java:14: ';' expected
import cw;
          ^
net\foo\server\fooServer.java:15: class, interface, or enum expected

import da;
       ^
net\foo\server\fooServer.java:16: '.' expected
import dp;
         ^
net\foo\server\fooServer.java:16: ';' expected
import dp;
          ^
net\foo\server\fooServer.java:17: class, interface, or enum expected

import ds;
       ^
net\foo\server\fooServer.java:18: '.' expected
import dt;
         ^
net\foo\server\fooServer.java:18: ';' expected
import dt;
          ^
net\foo\server\fooServer.java:19: class, interface, or enum expected

import dw;
       ^
net\foo\server\fooServer.java:20: '.' expected
import ep;
         ^
net\foo\server\fooServer.java:20: ';' expected
import ep;
          ^
net\foo\server\fooServer.java:21: class, interface, or enum expected

import fa;
       ^
net\foo\server\fooServer.java:22: '.' expected
import fd;
         ^
net\foo\server\fooServer.java:22: ';' expected
import fd;
          ^
net\foo\server\fooServer.java:23: class, interface, or enum expected

import fi;
       ^
net\foo\server\fooServer.java:24: '.' expected
import fl;
         ^
net\foo\server\fooServer.java:24: ';' expected
import fl;
          ^
net\foo\server\fooServer.java:25: class, interface, or enum expected

import ge;
       ^
net\foo\server\fooServer.java:26: '.' expected
import ho;
         ^
net\foo\server\fooServer.java:26: ';' expected
import ho;
          ^
net\foo\server\fooServer.java:27: class, interface, or enum expected

import ht;
       ^
30 errors

我已经确保CLASSPATH变量包含目录。有人有线索吗?(注意:编译器只是在我的类上遇到了问题。

对于初学者来说,您正在将一大堆类导入到一个
.java
文件中,该文件没有声明任何内容。这就是
类、接口或枚举所需的
消息的内容

在所有这些导入之后,您将声明一个类(或接口或枚举),如下所示:

package net.foo.server;

/*
 * import statements 
*/

public class MyClass {
    // fields, methods, etc. here
}


您要导入的随机命名的两个字母的包是什么?

您不能像这样导入类,除非它们是该类所在包之外的包的一部分。如果这些类在包之外,您必须显式导入它们或使用*通配符同时导入它们。

使用导入语句导入类型。没有以编写代码的方式导入包的概念

您可以使用星形符号导入包中的每种类型,例如

import at.*;
但是您不能只导入包“at”。这是您看到的所有编译器问题的根源

我还想进一步指出,完全不带任何层次结构的两个字母的包名与Java中公认的命名和组织惯例背道而驰


我建议您更加熟悉语言约定。之所以使用这些约定,是因为它们使您和其他想阅读您的代码的人都能更轻松地阅读代码。

有两种可能:

1) 将您的服务器类与其他所有类移到同一个包中,并摆脱导入。您还需要重新编译所有其他类,当然还需要更改子类中的net.foo.server导入

2) 不要为net.foo.server包操心,在其他地方进行更改,如gy.java等。只编译所需的类并将它们添加到jar中。在构建时,请确保将类路径指向server.jar,而不是编译的源代码

3) 使用旧的JDK编译——如果代码支持的话。在较旧的JDK中,可以使用“import Unfinished”从默认包导入


4) 等待并祈祷。(最流行的方法)记住,你所做的任何事情都很可能在你最不经意的周五中断。

at
(etc)是类名还是包名?我假设它们是未命名包中的类,而不是包(导入时间为。*)。我认为从一家未命名的包装店进口东西有一些限制。您可以创建一个不声明任何内容的.java文件。(我总是为javadoc创建一个包-info.java-它不声明任何东西。)Emory是正确的,这些是子包之外的类,直接在类路径中。我确实在导入之后声明了一个类,我只是觉得没有必要在这里包含它。这些不是包。它们是不在子包中的类,直接在类路径中。好吧,除了违反Java命名原则(类型是驼峰大小写的)之外,您不能从默认包(默认包没有名称)导入类型,这就是您所描述的。同样,您还必须遵守一个限制,即导入语句必须以一个包开始,并最终引用类型,可以是显式的,也可以是星形表示法。显然,我的代码很混乱,因为它是我正在处理的一个个人项目。我的问题与命名原则无关,我对命名原则非常了解。只要看到foo这个词和随机字母,我就会陷入困惑。至于层次结构,让我澄清一下我的包是如何设置的。类路径=。;C:\footest\。;此代码导入的类位于C:\footest\中。此文件位于C:\footest\net\foo\server\中。我从我的一位同事那里收到了一个几乎相同的类,该类使用了完全相同的包结构,并且编译成功。@Nathangbson:很简单:您来自一个命名包中的.java文件。据我所知,这是Java语言的一个限制,所以通过模糊处理或其他字节码操作,您应该能够实现这种效果。