目前正在尝试使用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
答案 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.java
和TesterClass.java
位于TesterClass
目录中吗?
更新了正在运行的示例
所以,基本上,我将.java
个文件放到\compile
(TesterClass
)目录下的\compile\TesterClass
目录中,并使用...编译它们。
\compile>javac TesterClass\Tester.java
然后我跑他们......
\compile>java TesterClass.Tester
Working
答案 1 :(得分:1)
您需要转到目录层次结构的顶部,然后首先编译TesterClass
,然后编译Tester
。由于您尚未编译TesterClass
,Tester
无法找到它。
错误明确指出它无法找到符号TesterClass
,而原因TesterClass
尚未编译。
我建议您使用自动为您编译的IDE。如果您坚持手动编译,则需要以正确的顺序编译所有类。
答案 2 :(得分:1)
尝试更改包名称,使其与类名称不匹配。现在他们是一样的。将其打包为TesterClassPackage,然后使用main()方法将TesterClass导入到该文件中。即使它们位于相同的包中,有时您也需要逐字导入文件,即使它们位于同一个包中。
答案 3 :(得分:0)
javac TesterClass \ TesterClass.java TesterClass \ Tester.java
会这样做