Java编译时找不到符号

标签 java compiler-errors

我正在遵循 Java 教程(留给我自己的设备来编写测试代码),但是在尝试编译时出现符号未找到错误。我看了又看,但无法弄清楚为什么我编写的代码会产生此错误。这可能很简单,但是当我费尽心思试图理解我做错了什么时,我希望有人能指出原因!

TestBeerExpert.java:

package com.example.model;

import com.example.model.*;
import java.util.*;

public class TestBeerExpert {

    public static void main(String[] args) {
        TestBeerExpert test = new TestBeerExpert();
        test.go();
    }

    private void go() {
        BeerExpert expert = new BeerExpert();
        List<String> brands = expert.getBrands("amber");
        ...
    }
}

BeerExpert.java:

package com.example.model;

import java.util.*;

public class BeerExpert {

    public List<String> getBrands(String color) {
        List<String> brands = new ArrayList<String>();
        ...
        return(brands);
    }

}

目录结构:

beerV1 -> src -> com -> example -> model -> TestBeerExpert.java & BeerExpert.java

编译自beerV1javac -d classes src/com/example/model/TestBeerExpert.java

实际错误:

src/com/example/model/TestBeerExpert.java:14: error: cannot find symbol
        BeerExpert expert = new BeerExpert();
        ^
  symbol:   class BeerExpert
  location: class TestBeerExpert
src/com/example/model/TestBeerExpert.java:14: error: cannot find symbol
        BeerExpert expert = new BeerExpert();
                                ^
  symbol:   class BeerExpert
  location: class TestBeerExpert
2 errors

我一生都无法弄清楚我做错了什么。这些文件位于同一目录和包中,因此据我所知,这应该是编译的。我很感激现在只纠正代码,但并解释我做错了什么,以便我将来可以记住它。提前致谢。

最佳答案

src添加到您的源路径

 javac -sourcepath src -d classes src/com/example/model/TestBeerExpert.java

您需要执行此操作,因为您从与源所在的不同目录执行 javac

无需先编译BeerExpert(javac将使用上述命令为您完成)。

验证:

~/beerV1$ ls src/com/example/model/
BeerExpert.java  TestBeerExpert.java
~/beerV1$ ls classes
~/beerV1$ javac -sourcepath src -d classes src/com/example/model/TestBeerExpert.java
~/beerV1$ ls classes/com/example/model/
BeerExpert.class  TestBeerExpert.class

关于Java编译时找不到符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14780321/

相关文章:

java - 使用 WebSphere Message Broker (WMB) 将 CSV 文件转换为 Java 对象

compiler-errors - 错误: not a valid function argument name

c++ - std::unordered_map 插入错误

c++ - 对象创建时 SSE 访问冲突崩溃

haskell - 双类型仿函数定义被拒绝

haskell - 为什么 GHC 会在这里产生等式约束错误而不是类型匹配错误?

java - GoogleAppEngine 错误 403

java - 偏置随机生成器小程序

java - 如何使用 Jersey POST 请求发送 header 和正文?

java - MacOS 雪豹和 Eclipse : Error starting Eclipse (No Java virtual machine. ...)