簡體   English   中英

錯誤:使用cmd中的包編譯Java程序時找不到符號

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM