[英]Compile and run this java program
如何編譯和運行以下程序:
Test1.java:
package A;
public class Test1
{
public int a = 1;
}
Test2.java:
package B;
import A.*;
public class Test2
{
public static void main(String [] args)
{
Test1 obj = new Test1();
System.out.println(obj.a);
}
}
我是新手。 如果我使用javac *.java
進行javac *.java
並手動創建dir A,則將Test1.class復制到其中,然后手動創建dir B,然后將Test2.class復制到其中,然后運行java B.Test2
。 我確信這不是正確的方法。 請提出建議。
您應該將.java文件保留在與包結構相匹配的目錄結構中
所以Test1.java應該進入目錄A,所以Test2.java應該進入目錄B
您需要將Java文件保留在正確的目錄結構中:
A/Test1.java
B/Test2.java
通常只需在您的主類上調用javac
就足夠了,因為所有依賴項都將自動處理。 在我說javac B/Test2.java
,它看起來像這樣:
A/Test1.class
A/Test1.java
B/Test2.class
B/Test2.java
我可以使用java B.Test2
運行該程序。
如果僅在主類上運行javac
還不夠,那么您可能需要構建系統。
編譯方式沒有任何問題,雖然很麻煩,但肯定沒有錯。
也就是說,創建一個src目錄來存儲您的.java文件,並使您的目錄結構與類的包結構保持一致。 在這種情況下,您將擁有src目錄,並在其中包含目錄A和目錄B。在A內部放置Test1.java,在B內部放置Test2.java
然后:
javac B/Test2.java
為什么選擇Test2.java? 因為它依賴於A,所以編譯器足夠聰明,可以首先編譯A / Test1.java,然后再編譯B / Test2.java。 此時,您在A和B中都有每個.class文件
要運行它:
java B.Test2
編譯器將創建名為A和B的目錄,並將.class文件放在其中。
您不需要手動將類文件復制到其包目錄中,如果這樣做,則可能無法正常工作。
這不是您問題的直接答案,但是您可能要開始考慮使用IDE(其他建議的螞蟻)。 如果您剛開始,我會推薦jcreator,或者如果您想要一些好的東西,我會推薦Eclipse。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.