[英]compile files from different directories with javac, referring a depending jar file?
我有以下設置:
我有4個軟件包:
我也有以下文件
在根目錄下,我想輸入一個終端命令,該命令編譯root / src / main / Main.java並將類文件放在root / bin位置。
有人可以告訴我執行此操作的命令嗎? 我在Mac(正在運行Leopard)上。
不知道您的操作系統?
您應該研究的是使用Apache Ant。 它是一個構建工具,一旦安裝和配置,它就可以利用根目錄中的build.xml文件將類文件編譯到文件夾中並打包jar文件。
嘗試這個:
javac -cp "/root/mail.jar;/root/src;" -d "/root/bin" Main.java
編寫此代碼是希望您在src文件夾中的類(如package terminal;
具有程序包聲明package terminal;
和package main;
。
看到這個: javac命令中的選項
或使用maple_shaft建議的Apache Ant。
來自@maple_shaft的評論:
在Unix,Linux操作系統中,類路徑分隔符是冒號而不是分號。
這是一個班輪:
cd /xyz/root
rm -rf bin/*
javac -d bin -classpath mail.jar -sourcepath src main/Main.java
另外,您可以使用絕對目錄名稱:
rm -rf /xyz/root/bin/*
javac -d /xyz/root/bin -classpath /xyz/root/mail.jar \
-sourcepath /xyz/root/src /xyz/root/ main/Main.java
在提到Ant時,您說過“我寧願保持簡單。” 。
實際上,從長遠來看,創建一個簡單的Ant build.xml
文件會更簡單。 替代方案是一堆不可移植的腳本或批處理文件……或大量鍵入。
要運行該應用程序,假設您仍在/xyz/root
目錄中:
java -classpath bin:mail.jar main.Main
或在Windows上:
java -classpath bin;mail.jar main.Main
或修改以上內容以在classpath參數中使用絕對路徑名; 例如
java -classpath /xyz/root/bin:/xyz/root/mail.jar main.Main
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.