Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java错误:只能导入类型。XYZ解析为一个包_Java_Jsp_Tomcat_Classpath - Fatal编程技术网

Java错误:只能导入类型。XYZ解析为一个包

Java错误:只能导入类型。XYZ解析为一个包,java,jsp,tomcat,classpath,Java,Jsp,Tomcat,Classpath,我得到一个错误:“只能导入一个类型。XYZ解析为一个包。” 有人解释了原因,但我不确定该怎么做才能解决这个问题。仅供参考:我正在使用Eclipse。我在下面添加了执行导入操作的代码。java.util.*导入工作正常 <%@ page import="java.util.*"%> <%@ page import="org.eresearch.knowledgeportal.model.Category"%> <%@ page import="org.erese

我得到一个错误:“只能导入一个类型。XYZ解析为一个包。”

有人解释了原因,但我不确定该怎么做才能解决这个问题。仅供参考:我正在使用Eclipse。我在下面添加了执行导入操作的代码。java.util.*导入工作正常

 <%@ page import="java.util.*"%>
 <%@ page import="org.eresearch.knowledgeportal.model.Category"%>
 <%@ page import="org.eresearch.knowledgeportal.dao.CategoryDao"%>

 <% 
  CategoryDao catDao = new CategoryDao();
  ArrayList<Category> catList = catDao.selectCategory();

 //
 %>

您必须从包中导入某些内容,如类、枚举或接口对象,如下所示:

import some.package.SomeClass;
或者,从包中导入所有内容(不推荐)

编辑:也许我读得不够仔细。您试图从中导入的包位于文件系统的何处?它在WEB-INF/lib下吗?

有更多细节吗?(这是在JSP中还是在链接的网页中?)

如果是这样,您可以始终使用完全限定的类名。
而不是:

import foo.bar.*;
Baz myBaz;
你可以用

foo.bar.Baz myBaz;

没有进一步的细节,这听起来像是类的导入声明中的错误。如果所有导入声明都从包或单个类导入所有类,请选中:

import all.classes.from.package.*;
import only.one.type.named.MyClass;
编辑

好的,在编辑之后,看起来这是一个jsp问题

编辑2


,这个问题似乎有相似之处,受害者通过重新安装eclipse解决了这个问题。首先,我会尝试安装第二个eclipse实例,其中只包含最必要的插件、一个新的工作区、导入到干净工作区的项目,并希望一切顺利……

好吧,您的Web应用程序并没有提供足够的详细信息,但我猜您有一个类似于以下内容的JSP:

<%@ page import="java.util.*,x.y.Z"%> 

或者捆绑
x.y.Z.class
的JAR存在于
WEB-INF/lib

好的,我刚刚解决了它。在上一次导入中,我通过复制其他代码示例添加了“;”。我想这是标准的行尾

所以


变成

 <%@ page import="java.util.*" %>
 <%@ page import="org.eresearch.knowledgeportal.dao.CategoryDao" %>
 <%@ page import="org.eresearch.knowledgeportal.model.Category;" %>

我知道现在回复这篇文章已经太晚了,但由于我没有看到任何明确的答案,我还是会这么做的

您可能想在eclipse上查看
META-INF
中的
MANIFEST.MF

然后您可能需要添加类文件的路径,如


类路径:WEB-INF/classes

在更改类名称中的字母大小写后,我也遇到了这个奇怪的错误。文件没有按预期复制到tomcat服务器,我不得不手动删除并重新部署。可能是因为我使用了不区分大小写的操作系统?

我也遇到了类似的问题。在eclipse中,我将我的项目与工作正常的示例项目(由maven原型生成)进行了比较。我发现我的项目在/.classpath文件中遗漏了2行。我复制了那两行,它解决了这个问题。尽管我在项目首选项中设置了构建路径,但由于某些原因,eclipse并没有相应地进行更新

<?xml version="1.0" encoding="UTF-8"?>
<classpath>
    <classpathentry kind="src" output="target/classes" path="src/main/java"/>
    <classpathentry kind="src" output="target/test-classes" path="src/test/java"/>
    ...
</classpath>

...

我的贡献:我得到这个错误是因为我创建了一个名为3lp的包。 但是,根据java规范,不允许以数字开头命名包。
我将它改为_3lp,现在它可以工作了。

我在Netbeans中遇到了这个错误。就像大多数奇怪的错误一样,这些错误都是无中生有的,我通过转到项目属性、更改源代码/二进制格式(不管是什么,只是一些不同的内容)并进行清理和构建来解决它

我打赌您有一个名为org.ivec.eresearch.knowledgeportal.model.category(小型
c
)的包,并且运行在不区分大小写的文件系统(如Windows或Mac)上。当类和包存在时,编译器似乎会感到困惑


您可以重命名类“Category”或包“Category”,此错误将消失。不幸的是,我不确定这是Tomcat还是ECJ错误。

如果您使用Maven并将Java类打包为JAR,那么请确保JAR是最新的。当然,仍然假设JAR在您的类路径中。

我通过将包含导入类的JAR文件添加到
WEB-INF/Lib
中解决了这个问题

您是否正在尝试像我一样导入重写的类

如果是这样,则重写的类位于错误的包中,或者根本不存在


创建或将类移动到正确的位置(src/[package.package].[class])可以解决您的问题。

如果您拼写类名错误或类不在类路径上,JSP处理器会说它“解析为包”,而不是说它不存在。这让我今天快发疯了,因为我一直没有看到我的打字错误。

将.class文件单独生成并粘贴到工作区的相关包中。
刷新项目。

对我来说,这是一个错误的部署。部署正确,一切正常(查看详细信息)。

我收到了相同的错误消息,我的处理方法如下:

  • 首先检查Tomcat发布web应用程序的文件目录,例如D:\Java\workspace.metadata.plugins\org.eclipse.wst.server.core\tmp1\wtpwebapps\myDatatable\web-INF\classes,我们通常将类放在其中。如果这不是放置类的位置,则必须通过右键单击web应用程序根名称-->生成路径-->配置生成库…-->找到默认位置,然后检查“源”选项卡并找到“默认输出文件夹”的字段值。这将是Tomcat为您上课的地方
  • 您将看到XYZ类尚未构建。为了构建它,您可以进入菜单“项目”-->“清理…”-->选择要清理的web应用程序
  • 完成后,尝试重新启动tomcat服务器并再次检查文件目录。你的班级应该在那里。至少对我有用。希望能有帮助

  • 这通常发生在混合(在同一jsp页面中)静态jsp导入时:

    <%@include file="...
    
    <jsp:include page="...
    

    这会生成异常:“只能导入类型…”

    我通过在tomcat lib目录中添加JAR来解决它。

    因此我有了
     <%@ page import="java.util.*" %>
     <%@ page import="org.eresearch.knowledgeportal.dao.CategoryDao" %>
     <%@ page import="org.eresearch.knowledgeportal.model.Category;" %>
    
    <?xml version="1.0" encoding="UTF-8"?>
    <classpath>
        <classpathentry kind="src" output="target/classes" path="src/main/java"/>
        <classpathentry kind="src" output="target/test-classes" path="src/test/java"/>
        ...
    </classpath>
    
    <%@include file="...
    
    <jsp:include page="...