簡體   English   中英

使用javac從不同目錄編譯文件,引用依賴的jar文件?

[英]compile files from different directories with javac, referring a depending jar file?

我有以下設置:

我有4個軟件包:

  • root / src / terminal-有一些Java文件
  • root / src / mail-有一些Java文件
  • root / src / data-有一些Java文件
  • root / src / main-具有單個Java文件Main.java

我也有以下文件

  • root / bin-用於存儲.class文件的文件夾
  • root / mail.jar-一個jar文件,其中包含在我的代碼中使用的重要類

在根目錄下,我想輸入一個終端命令,該命令編譯root / src / main / Main.java並將類文件放在root / bin位置。

有人可以告訴我執行此操作的命令嗎? 我在Mac(正在運行Leopard)上。

不知道您的操作系統?

您應該研究的是使用Apache Ant。 它是一個構建工具,一旦安裝和配置,它就可以利用根目錄中的build.xml文件將類文件編譯到文件夾中並打包jar文件。

http://ant.apache.org/

嘗試這個:

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.

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