我只是好奇爲什麼在像我這樣的系統上,我不得不使用java -cp。並在終端窗口中簡單地使用java命令不起作用?爲什麼我必須使用java -cp。 (類名)而不是java(類名)?
1
A
回答
2
當您啓動使用java
命令一個JVM,JVM的類路徑被確定爲如下:
如果使用「罐子」選項,然後在類路徑由的JAR文件本身,以及JAR文件中的可選「Classpath」屬性。
否則,如果您使用「-cp」選項,該選項的值給出的classpath
否則,如果CLASSPATH環境變量被設置,那麼,讓classpath中
否則,類路徑只包含當前目錄;即「。」。
現在你說你必須明確地給 「-cp。」以便java
命令正確執行您的命令。
最有可能的解釋是您將CLASSPATH環境變量設置爲不適當的東西。當您運行java MyClass
時,它將查看由CLASSPATH ...指定的類路徑並失敗。但是當你添加「-cp。」時,你會說「忽略CLASSPATH和只看當前目錄中的」。
0
選項-cp用於向目錄或文件添加路徑,以便Java環境僅爲該執行加載。這些文件「將包含您在程序中使用的庫的引用」。 或者使用-cp,您可以永久設置類路徑。設置它的方式取決於您使用的操作系統。 點擊此處瞭解詳情:http://docs.oracle.com/javase/tutorial/essential/environment/paths.html
相關問題
- 1. PHPUnit_Framework_Assert :: assertClassHasStaticAttribute()必須是類名
- 2. 爲什麼使用匿名類型而不是創建類
- 3. 爲什麼我必須在通用類
- 4. Java:爲什麼單獨的類必須是私有的
- 5. 的Java枚舉 - 爲什麼使用的toString,而不是名稱
- 6. 爲什麼我必須使用的,而不是「對象」
- 7. 爲什麼我必須使用「git commit -a」而不是「git commit」?
- 8. 爲什麼我必須使用POST而不是GET?
- 9. 爲什麼我必須使用WCF而不是Web服務?
- 10. 爲什麼我必須使用變量而不是「0」?
- 11. 爲什麼我必須使用jQuery定義而不是$?
- 12. 爲什麼我必須使用$( '#ID')[0] .srollHeight而不是$( '#ID')。srollHeight
- 13. 爲什麼UISearchDisplayController必須是類變量?
- 14. -cp ./爲什麼運行Java時,我總是必須手動將CWD包含到CP中?
- 15. 爲什麼使用var而不是類名?
- 16. 爲Java而不是JMS使用WebSphere MQ類有什麼好處?
- 17. Zend_Db_Table_Row:爲什麼我必須使用createRow()?
- 18. 爲什麼我必須使用Application類來使用WPF窗口?
- 19. 我爲Java Spring使用什麼主類?
- 20. 爲什麼使用form_for時它必須是current_user而不是@user
- 21. GHC-mod是否必須爲類型使用全名?
- 22. 爲Java匿名類
- 23. 爲什麼我們必須做模板的<class /類型名稱>的T,而不是僅僅型板T
- 24. 爲什麼Java文件必須與其公共類相同?
- 25. 爲什麼我不能像類名一樣使用變量名?
- 26. 爲什麼我不必在Java中導入不用作變量類型的類?
- 27. 爲什麼使用類名而不是對象來訪問Java中的類方法或變量?
- 28. Java - 爲什麼Eclipse告訴我我的方法必須返回int類型?
- 29. 當我進行連接時,爲什麼我必須指定實際的列名稱而不是字段名稱?
- 30. 我可能必須使用的API類是什麼?
「-cp」選項設置啓動Java應用程序時要使用的類路徑。 –
而您需要Java可執行文件的類路徑才能找到您的類。 –