'找不到符号'编译包的类时编译错误

时间:2016-12-15 07:57:38

标签: java cannot-find-symbol java-package

我创建了一个名为 mypack 的目录,并在该目录中添加了一个名为 A.java 的Java文件。 A.java 的代码如下:

package mypack;

public class A{
    public A(){
        System.out.println("Inside A");
    }
}

我在名为 Demo.java 的同一目录中添加了另一个文件。该文件的代码如下:

package mypack;

public class Demo {
    public static void main(String args[]) {
        A a = new A();
    }
}

问题是当我编译第二个文件 Demo.java 时我得到错误:找不到符号A

Unknown symbol A

目录 mypack 如下所示:

Directory structure

我不知道为什么 Demo.java 与A.java相同的包(mypack)的文件无法访问类 A 即使我在 A.java 中宣布它是公开的。 请有人帮忙!!

3 个答案:

答案 0 :(得分:0)

也许你可以使用

javac *.java

一次编译两个java源文件。

答案 1 :(得分:0)

要编译文件,请打开终端并输入

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {

        NSString *selectedText = titleArray[indexPath.row];

        if [self.delegate respondsToSelector:@selector(passData:)]) {
           [self.delegate passData:"hello"];
        } 

       [self.navigationController popViewControllerAnimated:YES];
}



**in ViewControllerA**

#import "ViewControllerA.h"
#import "ViewControllerB.h"

@interface ViewControllerA () <DataDelegate>
@property (strong, nonatomic) ViewControllerB *viewControllerB;
@end

@implementation ViewControllerA

- (void)viewDidLoad {
    _viewControllerB.delegate = self;
}

- (void)passData:(NSString *)data {
    self.textField.text = data
}

要运行生成的类文件,请使用

javac filename.java

答案 2 :(得分:0)

你可以做这样的事情来编译所需的文件,就像你在问题中提到的那样:

javac Demo.java A.java

在这种情况下,这会编译您的类以及依赖项A.java

或者您可以执行此类操作,以涵盖目录下的所有.java个文件。

javac *.java

请参阅this以获取进一步的参考!