我打算成爲一名經過認證的Java程序員,並正在從Sierra-Bates書籍中學習。我有一個關於classpaths的問題。類路徑只需要找到我正在運行/編譯的類的支持類,還是支持類和類本身?另外,當我從類路徑獲取包中的類時,僅放置文件的地址(路徑)是合法的,而不是放入它的根包。謝謝。使用類路徑
Q
使用類路徑
0
A
回答
1
1 - 類路徑必須允許訪問需要在程序中運行的每個類。這將包括主要類和它調用的任何類。如果在其中一個類中有一些永遠不會調用的代碼,在很多情況下,您不需要使用未調用代碼引用的類。
2 - 您必須將包的根放入類路徑中。因此,類「com.bob.myprog.Main」需要將類路徑指向「com」包/文件夾所在的文件夾。它需要包含一個「bob」文件夾,「bob」需要包含一個帶有「Main.class」的「myprog」文件夾。
0
類路徑必須包含支持類和類本身。
但是,有時你可以在不指定classpath的情況下運行單個文件(並且它可以工作)。 作爲http://docs.oracle.com/javase/tutorial/essential/environment/paths.html規定:
類路徑的默認值是,這意味着只有 搜索當前目錄「」指定CLASSPATH 變量或-cp命令行開關將覆蓋此值。
因此,如果你有在當前目錄編制了MyClass類,下面的工作:
java MyClass
一邊指着類路徑到另一個目錄將導致錯誤(類路徑不再包含MyClass的) :
java -cp lib MyClass
當你在一個包中的類,它是不夠的,把地址給類文件中類路徑。據SCJP Sun認證的程序員對Java 5的學習指南:
爲了找到一個包中的類,你必須有一個目錄中 classpath中有包的最左邊的條目(包的 「根「)作爲子目錄。
相關問題
- 1. 使用Bukkit /類路徑
- 2. 使用Java的類路徑
- 3. 使用manifest.mf類路徑的運行時類路徑
- 4. 使用路徑
- 5. 使用路徑
- 6. 類和路徑
- 7. Tomcat類路徑
- 8. Groovlet類路徑
- 9. Java類路徑
- 10. hadoop類路徑
- 11. Weblogic類路徑
- 12. Java類路徑
- 13. 從類路徑
- 14. JasperReports類路徑
- 15. 在Eclipse中使用Ant的類路徑
- 16. TomCat:使用類路徑打開文件
- 17. 使用Pathname類連接絕對路徑
- 18. 使用清單的類路徑訂單
- 19. JavaFX上使用javafxpackager的類路徑
- 20. m2eclipse。使用AJDT生成類路徑
- 21. 使用兩個類路徑編譯servlet
- 22. 包括使用相對路徑的類
- 23. 使用Maven生成類路徑文件
- 24. 未使用的MANIFEST.MF類路徑
- 25. 在Java中使用路徑和路徑
- 26. 閱讀相對路徑(外類路徑)
- 27. Eclipse類路徑vs構建路徑
- 28. Java:ZipFile使用路徑
- 29. JMS ObjectMessage類路徑
- 30. 類路徑錯誤
如何編譯?考慮以下目錄結構:food-> test-> xcom-> A.class,B.java(其中「 - >」表示左側的目錄包含右側的目錄/文件)和以下代碼:package xcom ; public class A {} package xcom; public class B extends A {}將test作爲當前目錄,您將如何使用命令行中的javac編譯B.java? – user2884033
包含「xcom」的文件夾將需要位於類路徑中。這就是「測試」。 –
這是一個糟糕的例子,對不起。我想問的是類路徑只需要找到A.class,或A.class和B.java。 – user2884033