使用命令行javac“找不到符号”错误
我有两个class级Owning和OwningAccessor。 这些文件位于同一目录中。
public class Owning { String _name = ""; public void printBanner() { } public void printOwning(double amount) { printBanner(); //print details System.out.println("name:" + _name); System.out.println("amount:" + amount); } } public class OwningAccessor { public void access() { Owning o = new Owning(); o.printOwning(500); } }
当我尝试使用javac -cp . OwningAccessor.java
编译OwningAccessor
时javac -cp . OwningAccessor.java
javac -cp . OwningAccessor.java
,我得到了编译错误。
symbol : class Owning location: class smcho.OwningAccessor Owning o = new Owning(); ^ OwningAccessor.java:6: cannot find symbol symbol : class Owning location: class smcho.OwningAccessor Owning o = new Owning(); ^
这有什么问题? 代码在eclipse IDE下编译得很好。
好的,我们假设您将代码分布在文件中,如下所示
myproject ├── out └── src ├── OwningAccessor.java └── Owning.java
转到命令提示符,将目录更改为myproject
。 一旦发出以下命令:
javac -d out -sourcepath src src/OwningAccessor.java
我只是测试它,它工作得很好。 您编译的类将位于out
文件夹中:
. ├── out │ ├── OwningAccessor.class │ └── Owning.class └── src ├── OwningAccessor.java └── Owning.java
编译一个类将触发所有其他依赖类的编译。 编译器将自动在src
文件夹中查找它们。
确保编译Owning.java和OwningAccessor.java,如下所示:
javac -cp . Owning.java OwningAccessor.java
Eclipse为您编译所有必需的文件,这就是为什么在那里工作。
尝试制作正确的源路径示例:
javac -d temp -sourcepath c:\ awork \ JavaProjects \ singleton \ src \ c:\ JavaProjects \ singleton \ src \ com \ company \ MySingleton.java javac -d temp -sourcepath c:\ awork \ JavaProjects \ singleton \ src \ c:\ JavaProjects \ singleton \ src \ com \ company \ Main.java
在“temp”中我们分配资源,而-sourcepath指示.java文件在哪里。
因此,在名为D:\ Automation的目录中,有一个文件Demo.java抛出此错误,当你在D:\ Automation时,在cmd中,你需要: – 1)cd .. //将你从自动化中拉出来目录。 在D:> 2)javac Automation \ Demo.java
这将编译您的文件 – Demo.java