我想为实用程序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代码, jdk-12
任何帮助将不胜感激!
答案 0 :(得分:0)
编译器输出给您两个特定的错误。
第一个:
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)
您要在round()
类上调用方法Number
,但这是在告诉您找不到要运行的“ 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