簡體   English   中英

嘗試使用“Intellij IDE”和“終端”運行時,Java 程序的編譯 output 的差異

[英]Difference in Compilation output of Java program, When trying to run with 'Intellij IDE' and 'Terminal'

實際上,我正在執行一個特定的程序,如下圖所示......

第一種情況:在 Intellij IDE 中使用默認運行選項運行相同的.java文件
--> 給出正確的 output(你可以在圖片中看到)

在此處輸入圖像描述

第二種情況:在終端中使用命令javac same.java運行相同的.java 文件

error: cannot find symbol
        anotherClass.main(new String[]{"aditya"});  
        ^  
  symbol:   variable anotherClass 
  location: class same

在此處輸入圖像描述

為什么是這個問題......據我所知,在 java 默認情況下,“java.lang”和“當前工作目錄”包是默認導入的......

當您從 IDE 運行代碼時,IDE 會編譯項目中的所有類。 當您從命令提示符運行代碼時,您必須編譯所有必要的類。 在這種情況下,您沒有編譯anotherClass

這是有關如何從命令行編譯多個文件的鏈接: https://docs.oracle.com/en/java/javase/13/docs/specs/man/javac.ZFC35FDC70D5FC69D269883.A8 Go 下到“編譯多個源文件的示例”部分

作為旁注,使用正確的命名約定。 行業接受的類命名約定是“CamelCase”。

發生這種情況是因為文件anotherClass.java的編譯字節碼在com/company/com位置不可用。 檢查 IntelliJ 保存.class文件的文件夾並直接執行它們。

此外,如果您想通過終端手動編譯這些文件,請從 package( src文件夾)外部進行。

暫無
暫無

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

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