Java文件没有编译

时间:2013-10-17 03:54:08

标签: java package

目前正在尝试使用Java中的对象。一切顺利,直到我编译。一直在阅读有关同一问题或同一错误的其他几个问题,此时我不确定我是否遗忘了某些内容或者我需要更改我的类路径。

主类文件:

package TesterClass;

public class Tester {
    public static void main(String[] args){

        TesterClass firstTest  = new TesterClass();
        firstTest.stringPrinter();
    }
}

应该作为包文件运行的文件:

package TesterClass;

public class TesterClass{

    private String workingSegment;

    public TesterClass(){
        workingSegment = "Working";
    }

    public void stringPrinter(){
        System.out.println(workingSegment);
    }
}

这两个文件位于同一目录中,我正在尝试手动编译它们 “javac Tester.java”。我得到的错误是关于它与包有问题的事实。欢迎大家帮忙!

编辑:忘记发布实际的编译器错误。

Tester.java:9: cannot find symbol
symbol  : class TesterClass
location: class TesterClass.Tester
        TesterClass firstTest;
        ^
Tester.java:11: cannot find symbol
symbol  : class TesterClass
location: class TesterClass.Tester
            firstTest = new TesterClass();
                        ^
2 errors

4 个答案:

答案 0 :(得分:3)

移动到源树的顶部并编译两个类......

因此,假设源文件位于\Java\TesterClass,您需要从\Java开始

javac TesterClass\Tester.java TesterClass\TesterClass.java

您可能还希望快速阅读Code Conventions for the Java Programming Language,因为软件包名称假设为小写:P

<强>更新

我刚试过......

javac TesterClass\Tester.java

它运作良好。

您确定Tester.javaTesterClass.java位于TesterClass目录中吗?

更新了正在运行的示例

所以,基本上,我将.java个文件放到\compileTesterClass)目录下的\compile\TesterClass目录中,并使用...编译它们。

\compile>javac TesterClass\Tester.java

然后我跑他们......

\compile>java TesterClass.Tester
Working

答案 1 :(得分:1)

您需要转到目录层次结构的顶部,然后首先编译TesterClass,然后编译Tester。由于您尚未编译TesterClassTester无法找到它。

错误明确指出它无法找到符号TesterClass,而原因TesterClass尚未编译。

我建议您使用自动为您编译的IDE。如果您坚持手动编译,则需要以正确的顺序编译所有类。

答案 2 :(得分:1)

尝试更改包名称,使其与类名称不匹配。现在他们是一样的。将其打包为TesterClassPackage,然后使用main()方法将TesterClass导入到该文件中。即使它们位于相同的包中,有时您也需要逐字导入文件,即使它们位于同一个包中。

答案 3 :(得分:0)

javac TesterClass \ TesterClass.java TesterClass \ Tester.java

会这样做