java - 从一个java类调用另一个类的方法时出现问题

标签 java

我有一个文件夹 PackagesAndMethods 。在该文件夹中我有两个文件

  1. TestMethods.java
  2. 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/

相关文章:

java - 如何杀死 Java 进程并执行关闭钩子(Hook)

java - 如何防止Maven编译src/test/java中的类,这些类是在generate-sources阶段生成的?

java - String.replaceAll 比自己完成工作要慢得多

java - 如何停止 java 方法,直到它收到来自 MQTT 代理的消息

java - 如何使用Gradle配置JCompilo

java - 当OutputStream的write写入字节(内部)时,为什么InputStream的read返回int?

java - 如何将Uri图片转成Base64?

java - 使用toString打印信息

java - java的makefile

java - 使用java将字符串从文件读取到数组列表