我有一个文件夹 PackagesAndMethods 。在该文件夹中我有两个文件
- TestMethods.java
- MyMethods.java
这些文件中的代码是,
TestMethod.java
package PackagesAndMethods;
public class TestMethods
{
public static void main(String args[])
{
int result = MyMethods.Total();
System.out.println(result);
}
}
MyMethods.java
package PackagesAndMethods;
public class MyMethods
{
public static int Total()
{
return 10;
}
}
问题是“MyMethods.java”类编译成功,但是在编译“TestMethods.java”时,我收到以下错误
error: cannot find symbol
int result = MyMethods.Total();
^
symbol: variable MyMethods
location: class TestMethods
1 error
我做错了什么?
最佳答案
问题在于你的编译方式。您通常应该从“包根”进行编译,最好还指定输出根。例如,从父目录 (D:\Java
):
> javac -d classes PackagesAndMethods\MyMethods.java
> javac -d classes -cp classes PackagesAndMethods\TestMethods.java
或更简单地说:
> javac -d classes PackagesAndMethods\*.java
当前编译器期望找到一个名为 PackagesAndMethods
的目录来查找 PackagesAndMethods
目录中的类。
我个人会将源代码分离到其自己的单独目录中,以使其远离输出,因此您最终会得到:
> javac -d classes src\PackagesAndMethods\*.java
如果您使用可以为您管理所有这些的 IDE,您可能会发现入门会更简单。仍然值得将源和输出分开。
关于java - 从一个java类调用另一个类的方法时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28168208/