簡體   English   中英

為什么我必須使用java -cp。 (類名)而不是Java(類名)?

[英]Why do I have to use java -cp . (class name) and not java (class name)?

我只是很好奇為什么在像我這樣的某些系統上必須使用java -cp。 並且僅在終端窗口中使用java命令不起作用?

使用java命令啟動JVM時,JVM的類路徑如下確定:

  • 如果使用“ -jar”選項,則類路徑由JAR文件本身以及JAR文件中的可選“ Classpath”屬性組成。

  • 否則,如果使用“ -cp”選項,則該選項的值將提供類路徑

  • 否則,如果設置了CLASSPATH環境變量,則給出類路徑

  • 否則,類路徑僅包含當前目錄。 即“。”。


現在,您說您必須顯式給出“ -cp”。 為了使java命令正確執行您的命令。

最可能的解釋是您已將CLASSPATH環境變量設置為不合適的變量。 當您運行java MyClass ,它將在CLASSPATH ...指定的類路徑上查找並失敗。 但是,當您添加“ -cp”時,您的意思是“忽略CLASSPATH並查看當前目錄”。

選項-cp用於將路徑添加到Java環境僅針對該執行將加載的目錄或文件。 這些文件“將包含您在程序中使用的對庫的引用”。 或者,可以使用-cp來永久設置類路徑。 設置方式取決於您使用的操作系統。 此處的更多信息: http : //docs.oracle.com/javase/tutorial/essential/environment/paths.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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