首页 > 编程语言 >我创建了一个文件夹/软件包,其中有两个子软件包(第一个=subpkg1,第二个=subpkg2),在subpkg1中导入文件,在subpkg2中导入文件。

我创建了一个文件夹/软件包,其中有两个子软件包(第一个=subpkg1,第二个=subpkg2),在subpkg1中导入文件,在subpkg2中导入文件。

时间:2024-05-29 23:39:47浏览次数:26  
标签:java visual-studio-code import package exists

在此输入图片描述

我正在使用 VS 代码学习 Java。我创建了一个文件夹/包(name=pkg)然后,我在该包中创建了两个包 (第一个=subpkg1,第二个=subpkg2)但我在 subpkg1 中创建了一个文件 (test1) 并从 subpkg2 中导入文件 (name= food) 然后编译并运行。我一直收到 pkg.subpkg2 doesn't exist 的错误信息(见图片)

我希望它能导入文件。请回答它的 vs 代码


收到的错误消息表明 Java 编译器无法找到 pkg.subpkg2 包。这通常是由于包结构或导入语句的问题导致的。

以下是可能导致此问题的常见原因以及解决方法:

1. 包结构不正确:

  • 确保的包结构在文件系统中正确反映。这意味着 pkg 文件夹应该包含 subpkg1subpkg2 文件夹,而 test1.java 文件应该位于 subpkg1 文件夹中,food.java 文件应该位于 subpkg2 文件夹中。

2. 缺少导入语句:

  • test1.java 文件中,需要使用 import 语句导入 food.java 文件所在的类。例如,如果 food.java 文件中包含一个名为 Food 的类,则需要添加以下导入语句:
import pkg.subpkg2.Food;

3. 类名错误:

  • 确保在导入语句和代码中使用的类名正确无误。Java 区分大小写,因此 Foodfood 不同。

4. 编译输出路径不正确:

  • 确保的编译输出路径(例如 bintarget/classes)包含生成的 .class 文件,并且该路径在的类路径中。

5. VS Code 配置问题:

  • 如果上述步骤都没有解决问题,请尝试以下操作:
    • 清理 VS Code 的工作区缓存:使用 Ctrl + Shift + P 打开命令面板,然后运行“Java: Clean the Java language server workspace”命令。
    • 重新启动 VS Code。

示例代码:

food.java (位于 pkg/subpkg2 中):

package pkg.subpkg2;

public class Food {
    // ...
}

test1.java (位于 pkg/subpkg1 中):

package pkg.subpkg1;

import pkg.subpkg2.Food;

public class test1 {
    public static void main(String[] args) {
        Food food = new Food();
        // ...
    }
}

如果在按照上述步骤操作后问题仍然存在,请提供以下信息,以便我为提供更具体的帮助:

  • 的完整项目文件夹结构的屏幕截图。
  • test1.javafood.java 文件的完整代码。
  • 在 VS Code 中使用的 Java 扩展的版本。
  • 运行代码时使用的确切命令或操作。

标签:java,visual-studio-code,import,package,exists
From: 78547429

相关文章

  • Frida - Java 应用程序在替换方法后冻结
    我能否(从java反编译器中)知道类和方法的名称以替换其实现或让JVM调用我的方法而不是目标方法?(在运行时)为此,我尝试使用frida,但替换后应用程序会冻结。Env$java--versionjava17.0.112024-04-16LTSJava(TM)SE运行时环境(构建17.0.11+7-LTS-207)JavaHotSpot(TM)64位......
  • Java 中主要使用 Json 注释
    我从DB收到了JSON格式的数据,但我必须将所有字段对齐到适当的位置,如下所示:{"姓名":"Maveric"、"年龄":"26"、地址"波士顿街22号";}......
  • Java 异常概述
    Java异常概述程序中的异常异常:指的是程序在执行过程中,出现的非正常情况,如果不处理最终会导致JVM的非正常停止。异常指的并不是语法错误和逻辑错误。语法错误,则不会产生字节码文件,不能正常运行代码逻辑错误,则仅仅是不能得到想要的结果Java异常抛出机制​Java中把......
  • 一文了解java枚举
    1.枚举的由来当我们知道所有变量的可能性时,尽量使用枚举类型来定义,比如季节,春夏秋冬,一周(一二三四五六七),只读不需要修改有限的一个一个列举出来的类叫做枚举类,枚举是一组常量的集合,枚举也是一个特殊的类,里面包含了一组有限的特定对象2.自定义实现枚举不需要提供......
  • 前端学习笔记——JavaScript基础语言的学习(三)
    作者简介:大家好,本人刚专升本上岸,是个前端小菜鸟。每日都会虚心的学习。有什么写的不好的,大家都可以帮我提出来。我跟着pink老师学的!!!强烈推荐:https://www.bilibili.com/video/BV14J4114768p=1&vd_source=38cea56ff3dcca4556d2d0f0f2c18c0c1,类型转换:把一种数据类型的变量转换成......
  • 前端学习笔记——JavaScript基础语言的学习(二)
    作者简介:大家好,本人刚专升本上岸,是个前端小菜鸟。每日都会虚心的学习。有什么写的不好的,大家都可以帮我提出来。我跟着pink老师学的!!!强烈推荐:https://www.bilibili.com/video/BV14J4114768p=1&vd_source=38cea56ff3dcca4556d2d0f0f2c18c0c1.数组的基本使用2.常量的基本使用......
  • Java浅拷贝大揭秘:如何轻松复制两个不同对象的某些相同属性
    哈喽,大家好,我是木头左!一、引言在Java编程中,经常会遇到需要复制一个对象的属性到另一个对象的情况。这时,可以使用浅拷贝(ShallowCopy)来实现这个需求。那么,什么是浅拷贝呢?浅拷贝是指创建一个新对象,然后将原对象的非静态字段复制到新对象中。这样,新对象和原对象就会有相同的字段......
  • JAVA每日作业day5.29
    依旧是活力满满的一天奥老铁们。今天学习了数组,数组包括了以下方面:1.动态初始化:自己定义数组的长度,系统决定初始值。2.静态初始化:自己决定数组的初始值,系统决定长度。3.数组的的索引:索引从0开始并逐一增加(每次加1),我们要存储数组的数据时,要用索引来存储,话不多说上代码。......
  • java中String、List、数组之间的转换方式
    在Java中,String、List和数组(如String[])之间的转换是常见的操作。下面是如何在它们之间进行转换的示例。1.String转List通常,你不会直接将一个完整的String转换为List,但你可以将包含多个元素的字符串(如由逗号分隔的字符串)分割成多个部分,并将这些部分添加到List中。Str......
  • 5.29_Java程序流程控制
    CSDN   同C语言的流程同1、补充:1、switch使用时的注意事项1、表达式只能是byte、short、int、char,JDK5开始支持枚举,JDK7开始支持String、不支持double、float、longswitch里面是做分支匹配,也就是可以出现很多分支,如果弄得范围很大,不可能出现这么多分支,int的范围都很......