簡體   English   中英

如何運行java類命令行?

[英]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.

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