2017-06-13 98 views
0

我對javac命令的'cp'選項有一些問題。 如附圖所示,我輸入了正確的路徑,但仍然顯示「文件未找到」錯誤。Java:javac命令類路徑錯誤

我曾嘗試在路徑中添加'「」'(引號),但徒勞無功。我在這裏有兩個問題:

1)這裏有什麼問題?

2)如何使用'。'放置路徑。 (點)以cmd爲'cp'選項? 請幫助

Issue

編輯:通過Oracle網站link去,我發現這個解釋「-cp選項」

-cp路徑或-classpath路徑 指定查找用戶類文件,和(可選)註釋處理器和源文件。此類路徑覆蓋CLASSPATH環境變量中的用戶類路徑。如果既未指定CLASSPATH,也未指定-classpath,則用戶類路徑由當前目錄組成。有關更多詳細信息,請參閱設置類路徑。 如果未指定-sourcepath選項,則還將搜索用戶類路徑以查找源文件。

如果未指定-processorpath選項,則還將搜索註釋處理器的類路徑。

+6

類路徑用於查找類,而不是源文件。傳入相對於當前工作目錄*的源文件*的名稱。 –

+0

是的,直接附加到源文件的路徑工作!僅供參考,爲什麼不選擇'-sourcepath'而不是'-cp',保持其他部分一致?我這次給源代碼路徑正確? – Sirius

+0

此外我在這裏找到[鏈接](http://docs.oracle.com/javase/7/docs/technotes/tools/windows/javac.html) -cp路徑或-classpath路徑: 。 。 。 。 **如果未指定-sourcepath選項,則還會搜索用戶類路徑中的源文件。** – Sirius

回答

1

1)這裏有什麼問題?

文件夾c:\user\sony中不存在文件Fruit.java。這就是爲什麼javac抱怨。我認爲您希望javac能夠從選項cp下指定的路徑中找出到Fruit.java的路徑。這個期望是不正確的。 Javac使用選項cpclasspath下指定的路徑查找Fruit.java引用的任何自定義類或註釋。如果Fruit.java未使用任何自定義類或註釋,則不需要指定cp選項。如果確實如此,則需要確保文件夾c:\user\sony\desktop\java中的Fruit.java引用的文件類型爲.class

2)如何使用'。'放置路徑。 (點)以cmd爲'cp'選項?請幫助

在Windows shell中,'。'代表當前的工作目錄。你的使用和期望是正確的。只要做javac .\desktop\Java\Fruit.java

+0

謝謝您的詳細解答。我如何解決這個問題呢? 也請在'編輯'下檢查添加的部分。 – Sirius

+0

@Sirius。 (1)爲了解決你原來的問題,如答案中所述,不要使用'-cp'選項,並確保'Fruit.java'的絕對路徑或相對路徑是正確的。 (2)我檢查了編輯過的部分。你在這裏有什麼問題? – VHS

+0

它說如果沒有定義'-sourcepath',用戶提供的類路徑也會搜索源文件。如果這是真的,那麼它應該通過我給的'-cp'路徑找到'Fruit.java'源文件,不應該。也感謝您的幫助,我將您的答案標記爲可接受的解決方案:-) – Sirius