[英]How to run java class command line?
我有以下測試問題:
鑒於:
1. package com.company.application; 2. 3. public class MainClass { 4. public static void main(String[] args) {} 5. }
MainClass
位於/ apps / com / company / application目錄中。 假設CLASSPATH環境變量設置為“”。 (當前目錄)。在命令行中輸入的兩個Java命令將運行MainClass
? (選擇兩個。)A. java MainClass(如果從/ apps目錄運行)
B. java com.company.application.MainClass如果從/ apps目錄運行
C. java -classpath / apps com.company.application.MainClass(如果從任何目錄運行)
D. java -classpath。 MainClass(如果從/ apps / com / company / application目錄運行)
E. java -classpath / apps / com / company / application:。 MainClass(如果從/ apps目錄運行)
F. java com.company.application.MainClass(如果從/ apps / com / company / application目錄運行)
我認為正確的是D和E,但是正確的是B和C,我想知道為什么嗎?
您應該使用其全名執行一個類。 類的全名包括:
<package location> + <simple name of class>
考慮到這一點, MainClass
全名是com.company.application.MainClass
。
Java可以從包含程序包樹頂部目錄的目錄中找到此類。 在示例中,根目錄是/apps
:
apps <-- root
+ com <-- here the package starts
+ company
+ application
- MainClass.class
因此,此根目錄應位於類路徑中,以便Java程序(JVM)可以訪問已編譯的類和應用程序的入口點。
從問題:
假設CLASSPATH環境變量設置為“”。 (當前目錄)。
選項B指出:
B.
java com.company.application.MainClass
如果從/ apps目錄運行
由於您位於/apps
目錄中,並且當前目錄為CLASSPATH,因此Java可以找到要執行的指定類。
選項C指出:
C.
java -classpath /apps com.company.application.MainClass
如果從任何目錄運行)
在這種情況下,您將/apps
設置為CLASSPATH,因此Java可以找到要執行的指定類。
所有其他選項均無法完成上述說明。
因為MainClass是com.company.application包的一部分,所以必須這樣運行(com.company.application.MainClass)。 您不能單獨運行MainClass,也不能僅使用.MainClass。 要檢查自己,請嘗試在命令行中運行每個選項!
A. java MainClass,如果從/ apps目錄運行[java不會從其類路徑中找到該類]
B. java com.company.application.MainClass如果從/ apps目錄運行[是]
C. java -classpath / apps com.company.application.MainClass(如果從任何目錄運行)[是]
D. java -classpath。 MainClass(如果從/ apps / com / company / application目錄運行)[在執行過程中不應該遵循程序包的結構]
E. java -classpath / apps / com / company / application:。 MainClass(如果從/ apps目錄運行)[是]
F. java com.company.application.MainClass(如果從/ apps / com / company / application目錄運行)[無需遵循結構]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.