簡體   English   中英

從命令行運行Java項目

[英]Running java project from command line

我正在嘗試從命令行運行我的java項目。我有2個看起來像這樣的軟件包

src/catalog1/MainClass - class with main program(he accesses 3 classes below)
src/catalog2/Class1 -
src/catalog2/Class2 -  Three classes that main program uses
src/catalog2/Class3 -

我應該先編譯該項目然后再運行它嗎?在嘗試使用javac編譯主程序然后通過java命令運行該程序之前,我沒有使用cmd,但是它沒有用,這是它找不到Class1的錯誤,等級2,Class3中。

您應該像這樣一次編譯所有類:

javac *.java

如果您使用Mac,請按以下步驟進行操作。

創建一個Makefile。 將其另存為Makefile

JAVA_HOME=`/usr/libexec/java_home -v 1.6`

all: Class1.java Class2.java Class3.java Class4.java

     ${JAVA_HOME}/bin/javac *.java

clean: 
   rm *.class

然后創建一個shell腳本。 將其另存為program.sh

JAVA_HOME=`/usr/libexec/java_home -v 1.6`

${JAVA_HOME}/bin/java MainClass

然后運行chmod +x program.sh

在您的終端運行中:

make
./program.sh

您可以在任何地方使用javac來編譯代碼,但是用java運行它是一個稍微不同的故事。

指定給java類名稱必須是完全限定的(包括軟件包名稱),並且軟件包結構直接與您的目錄結構綁定。

因此,在您的情況下,假設您具有package catalog1; MainClass的頂部,並package catalog2; 在“ catalog2”中源文件頂部,則必須從“ src /”目錄(或catalog[12]/*.class文件所在的根目錄)中運行程序,如下所示:

java catalog1.MainClass

基本上,對於包abc名為Program的類,必須滿足以下所有條件:

  • Program.java必須指定package abc;
  • Program.java必須位於<source>/a/b/c/Program.java
  • Program.class必須位於<bin>/a/b/c/Program.class (如果 在同一個地方)。
  • 必須使用java abcProgram來運行它,並且它必須從包含a/b/c/Program.class的根目錄中完成(更准確地說, abcProgram必須在類路徑中,但是類路徑中包含一個隱含的“。 “ 默認)。

我強烈推薦本教程 它簡潔明了,編寫精巧,遍歷了在包中創建,編譯和使用代碼的來龍去脈。

暫無
暫無

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

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