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