【问题标题】:Package PACKAGE_NAME does not exist包 PACKAGE_NAME 不存在
【发布时间】:2019-07-15 20:50:31
【问题描述】:

我想为实用程序 java 类创建一个自定义包。我想随时随地访问这些课程。我的包源类路径是:

E:/ClassLibrary/lib/util/math/Number.class

我的java源码位于:

E:/ClassLibrary/src/util/math/Number.java

我已将此路径添加到 windows 环境变量中:

对于系统变量:

CLASS_LIBRARY=E:\ClassLibrary

对于环境路径:

%CLASS_LIBRARY%\lib\

这是我的 Number.java 代码:

package util.math;
public class Number {
public static double round(double num) {
    num *= 100;
    num += 0.5;
    num = (int) num;
    num /= 100;
    return num;
}
}    

这是我试图从中导入该类的类;

import util.math.*;
public class Package {
    public static void main(String[] args) {
            String line = Return.object.name("String");
            System.out.println(line);
            Number.round(2.576);
    }
}

该课程位于:

E:/Experiments/Package.java

每当我尝试编译 Package.java 时。 它说:

Package.java:1: error: package util.math does not exist
import util.math.*;
^
Package.java:6: error: cannot find symbol
            Number.round(2.576);
                  ^
symbol:   method round(double)
location: class Number
2 errors

我什么都试过了。 但它们都不起作用! 我是 Java 编程语言的新手。 我正在使用 Windows 10,vs-code, jdk-12

任何帮助将不胜感激!

【问题讨论】:

    标签: java import package


    【解决方案1】:

    编译器输出给你两个特定的错误。

    第一个:

    Package.java:1: error: package util.math does not exist
    import util.math.*;
    ^
    

    确实没有这样的默认包可用。您可能会重新审视最初导致您添加该行的任何内容。

    第二个:

    Package.java:6: error: cannot find symbol
                Number.round(2.576);
                      ^
    symbol:   method round(double)
    

    您要求在 Number 类上调用方法 round(),但它告诉您它找不到要运行的“round()”事物。如果您查看Number (https://docs.oracle.com/javase/8/docs/api/java/lang/Number.html) 的Javadoc,您可以看到可用方法的列表——它们都不是“round()”。再次,值得重新审视你为什么要尝试Number.round()

    在您的Package.java 中,您需要编辑代码以指定要使用的Number 类,所以不要这样:

    Number.round(2.576);
    

    这样做:

    util.math.Number.round(2.576);
    

    编译 Package.java 时,由于它与 util/math/Number.java 位于不同的目录中,因此您需要告诉编译器在哪里查找您的 Number.java,如下所示:

    javac -cp E:/ClassLibrary/src/ Package.java
    

    【讨论】:

    • 我正在尝试访问位于Number 类中的round() 方法,该方法是我在package **util.math** 中创建的,而不是来自默认的Java's Number 类。它不仅仅是关于round() 方法,我还想使用其他几种方法。我只是不明白为什么即使设置了环境变量,包含Number 类的包 util.math 也没有正确导入,包位于正确的位置以及import 语句也是正确的。
    • 请任何解决方案! @kaan
    • 我在上面的帖子中添加了更多细节。希望对您有所帮助。
    • 我尝试使用上述命令,结果如下:E:\Experiments>java Package Exception in thread "main" java.lang.NoClassDefFoundError: util/mathematical/Numeric at Package.main(Package.java:4) Caused by: java.lang.ClassNotFoundException: util.mathematical.Numeric at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:583) at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521) ... 1 more@kaan
    • 我还想问一下,因为我已经将Class Library's 路径添加到Windows 环境变量中,但我仍然需要告诉编译器每次去哪里寻找util.math 包? @kaan
    猜你喜欢
    • 2016-01-30
    • 1970-01-01
    • 2021-07-16
    • 2018-06-06
    • 1970-01-01
    • 2019-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多