簡體   English   中英

如何使用vscode將一個文件的類導入Java子文件夾中的另一個文件

[英]How to import class of one file to another in a subfolder in Java using vscode

import mytest.Mypckg;

public class Learn {
  public static void main(String[] args) {
    System.out.println("Hello World");
    Mypckg.show();
  }
}
package mytest;
public class Mypckg {
  public static void show(){
    System.out.println("Good Moring");
  }
}

兩個文件都在同一個子文件夾名稱 mytest 中,但是當我嘗試運行主文件 => Learn 時,出現錯誤“Learn.java:2:錯誤:找不到符號導入 mytest.Mypckg;”。 我還嘗試通過從 Learn 文件中刪除 import mytest.Mypckg 來嘗試,因為兩者都具有相同的包,但是當我編譯時,我收到錯誤消息“找不到符號 Mypckg”。

我假設這兩個文件都在名為mytest的包/文件夾中,並且您的代碼似乎錯過了下面添加的這一行

package mytest;//added line
//import mytest.Mypckg;

public class Learn {
  public static void main(String[] args) {
    System.out.println("Hello World");
    Mypckg.show();
  }
}

在我沒有在主文件(Learn.java)中提到包 mytest 的一種情況下,你是對的。 那是我的壞處,但是在我的計算機中,當我在兩個文件中都提到 package mytest 時,我也收到了類似“找不到符號 import mytest.Mypckg;”之類的錯誤。 在此處輸入圖片說明

最后我找到了解決方案。 實際問題是我在子文件夾 mytest 中使用了編譯方法。 事實上,我試圖通過進入子文件夾之外來獲取 mytest 文件夾的路徑來編譯文件。 但罪魁禍首是別的東西。我沒有在我的編譯代碼中使用類路徑(即 -cp)。 因此,要在 vscode 中編譯包文件,我們必須轉到父文件夾並鍵入以下代碼。

javac -cp . mytest/Learn.java // compiler code with file path 

還要運行我們必須使用的文件

java mytest.Learn     // mytest is a subfolder (package folder) and learn is a main file

下面我附上了圖片,以便更好地為我的同事澄清。 我希望我的回答能幫助那些想用 vscode 中的包編譯 java 代碼的人在此處輸入圖片說明

暫無
暫無

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

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