java“找不到符号” - 如何在同一目录中导入文件?

时间:2009-11-25 21:12:54

标签: java

我在目录中有两个java文件,它们都不在一个包中。我希望他们中的一个能够引用另一个。这样做的正确方法是什么?

目前在A类中,我正在尝试引用B类,并收到此错误:

[javac] A.java:11: cannot find symbol
[javac] symbol  : constructor B(java.lang.String)
[javac] location: class B
[javac]         B b = new B(path);
[javac]               ^

以下无效:

  • 在A中,做“import B;”
  • 添加“package myPackage;” A和B

谢谢!

3 个答案:

答案 0 :(得分:4)

此外,如果每个文件中都有一个包引用,则需要从根目录编译它。我有同样的问题,点击此页面,没有一个答案真的有帮助。所以我有2个文件:

〜/工作/ COM /域/包装/库/ A.java

〜/工作/ COM /域/包装/库/ B.java

A.java:

package com.domain.pkg.library;

class A {
}

B.java:

package com.domain.pkg.library;

class B {
  A a = new A();
}

你需要进入〜/工作并输入:

javac com/domain/pkg/library/B.java

希望能有所帮助。

答案 1 :(得分:3)

你没有发布你的代码,所以我的回答可能是错的,但你很可能在B中使用一个构造函数,当没有像这样的定义时,使用字符串作为参数。

这是我的测试:

class A {
    B b = new B("b");
}
class B {

}

$javac A.java 

A.java:2: cannot find symbol
symbol  : constructor B(java.lang.String)
location: class B
    B b = new B("b");
          ^
1 error

看起来不一样吗?

答案 2 :(得分:0)

可能您没有正确设置编译依赖项和类路径。如果A需要B,你需要首先编译B来获得B.class,当你编译A时,确保B.class位置在你的类路径中,这样编译器就可以找到它。