[英]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.