[英]When compiling a java program from cmd i get “error: cannot find symbol”, but not in Eclipse
[英]Error: cannot find symbol while compiling java program with package in cmd
在我的Java項目中,我有三個Java類:1. App.java 2. UrlLibrary.java 3. MyIterator.java
首先,當Java文件位於默認包中時,App.java已在eclipse和cmd中進行編譯並正常運行。
但是,當我在自定義程序包中設置Java文件時,它可以在Eclipse中正常運行,但是當我嘗試在cmd中進行編譯時失敗。 我得到的錯誤:-
最有可能發生錯誤是因為我正在App.java類中使用另一個類,而該類實際上是通過javac編譯的。 該錯誤是指:
UrlLibrary sportsurl= new UrlLibrary(sports);
但這不是問題,因為所有三個java文件都在同一個程序包中,並且在eclipse中運行良好。 那么,這種情況的原因可能是什么?
我的文件夾結構:
而我的包裹:
javac的語法是-
javac <options> <source files>
作為,您使用-d作為選項將指定將您生成的類文件存儲在何處。 因此,您在桌面上使用class文件夾存儲生成的class文件。 沒關系。
但是,問題出在您正在使用App.java
的<source files>
,並且您是從package目錄進行編譯的,而不是應該從src目錄進行編譯的。 此外,根據您共享的包結構, App.java
位於com.era包中。 因此,您必須使用類指定包名稱才能正確編譯
javac -d (Path of the directory for storing generated class files) com/era/App.java
希望這會起作用。 對於運行,請使用以下命令:
java -cp (Same directory where generated file exists) com.era.App
在這里, -cp
用於類路徑。 您也可以在javac中使用-cp
設置所需的類路徑。 否則,將設置環境變量的默認類路徑。 要在Java或javac中使用更多的<options>
,請在cmd中運行javac/java -help
。 您將在此處獲得<options>
的詳細列表。
可能方便: 從命令行在程序包中編譯和運行Java程序
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.