Java |自定义创建的包不存在

问题描述 投票:0回答:1

我在运行访问我的代码文件夹中其他文件的程序时遇到麻烦。

这里是文件结构:

File Structure

这是我的文件:

  1. LetterGrader
package grade.util;

public class LetterGrader {
private void readArgs() {
        System.out.println("Hello, read CLA!");
}
}
  1. TestLetterGrader
import grade.util.*;

public class TestLetterGrader {
  public static void main(String[] args) {
    LetterGrader letterGrader = new LetterGrader(); // instantiate
        letterGrader.readArgs(); // call method
  }
}

这是我的步骤:

  1. 编译包文件

    javac -d bin -sourcepath src -cp src src/LetterGrader.java

  2. 编译访问包的辅助文件

    javac -d bin -sourcepath src -cp src src/TestLetterGrader.java

  3. 这是我的错误

src/TestLetterGrader.java:3: error: package grade.util does not exist
import grade.util.*;
^
src/TestLetterGrader.java:7: error: cannot access LetterGrader
  LetterGrader letterGrader = new LetterGrader(); // instantiate
  ^
bad source file: src/LetterGrader.java

  file does not contain class LetterGrader
  Please remove or make sure it appears in the correct subdirectory of the sourcepath.
2 errors

我相信我的类路径和文件搜索位置存在问题。任何提示或指导将是伟大的!

java package classpath javac
1个回答
0
投票

您正在导入bin文件夹中的类。请勿这样做是行不通的。您不需要进行任何导入,因为这些类位于同一位置。将包放在src文件夹下,然后将类放在此处。删除package grade.util并将其重命名为放置类的包。

文件结构:

src
 \ 
  \
  yourpackage 
       \
        \
    LetterGrader.java   TestLetterGrader.java

然后删除构建文件夹中的所有内容并编译类。 Java将使它变得神奇。您确实需要担心bin文件夹,它仅用于存储编译的类。

课程将如下所示:

//package name that you created
package yourpackage;

public class LetterGrader {
private void readArgs() {
        System.out.println("Hello, read CLA!");
}
}

//without any import

public class TestLetterGrader {
  public static void main(String[] args) {
    LetterGrader letterGrader = new LetterGrader(); // instantiate
        letterGrader.readArgs(); // call method
  }
}

© www.soinside.com 2019 - 2024. All rights reserved.