[英]javac “cannot find symbol” error with command line
我有两个班级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 .. //将从Automation中拉出来目录。 在D:> 2)javac Automation \\ Demo.java
这将编译您的文件 - Demo.java
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.